From patchwork Tue Sep 11 01:30:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bing Zhao X-Patchwork-Id: 1434731 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 697D840220 for ; Tue, 11 Sep 2012 01:31:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757161Ab2IKBbx (ORCPT ); Mon, 10 Sep 2012 21:31:53 -0400 Received: from na3sys009aog129.obsmtp.com ([74.125.149.142]:38772 "EHLO na3sys009aog129.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756958Ab2IKBbw (ORCPT ); Mon, 10 Sep 2012 21:31:52 -0400 Received: from MSI-MTA.marvell.com ([65.219.4.132]) (using TLSv1) by na3sys009aob129.postini.com ([74.125.148.12]) with SMTP ID DSNKUE6Uht738OHDJlVWUxV7pobVPRabG0Fk@postini.com; Mon, 10 Sep 2012 18:31:52 PDT Received: from maili.marvell.com ([10.68.76.210]) by MSI-MTA.marvell.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 10 Sep 2012 18:30:51 -0700 Received: from localhost.localdomain (unknown [10.80.114.125]) by maili.marvell.com (Postfix) with ESMTP id 0CFA84E510; Mon, 10 Sep 2012 18:30:52 -0700 (PDT) From: Bing Zhao To: linux-wireless@vger.kernel.org Cc: "John W. Linville" , Amitkumar Karwar , Kiran Divekar , Avinash Patil , Yogesh Powar , Stone Piao , Ying Luo , Frank Huang , Bing Zhao Subject: [PATCH 05/10] mwifiex: update adapter->bss_prio_tbl[j].bss_prio_cur correctly Date: Mon, 10 Sep 2012 18:30:44 -0700 Message-Id: <1347327049-13665-6-git-send-email-bzhao@marvell.com> X-Mailer: git-send-email 1.7.0.2 In-Reply-To: <1347327049-13665-1-git-send-email-bzhao@marvell.com> References: <1347327049-13665-1-git-send-email-bzhao@marvell.com> X-OriginalArrivalTime: 11 Sep 2012 01:30:51.0799 (UTC) FILETIME=[146E8270:01CD8FBD] Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Amitkumar Karwar "adapter->bss_prio_tbl[j].bss_prio_head" points to linked list of interfaces with priority 'j'. "bss_prio_tbl[j].bss_prio_cur" is supposed to point to next interface every time the routine for dequeuing the packet is called. This ensures that each interface gets fair chance. Currently we have AP and station interfaces with priority '0'. Therefore "adapter->bss_prio_tbl[0].bss_prio_cur" should alternately point to AP and station nodes. Since "bss_prio_cur" is not correctly updated, for each packet picked for AP, two packets are picked for station interface. This patch fixes the problem by correctly updating "bss_prio_cur". Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao --- drivers/net/wireless/mwifiex/wmm.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c index 8ccd699..766d452 100644 --- a/drivers/net/wireless/mwifiex/wmm.c +++ b/drivers/net/wireless/mwifiex/wmm.c @@ -907,17 +907,16 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter, if (adapter->bss_prio_tbl[j].bss_prio_cur == (struct mwifiex_bss_prio_node *) &adapter->bss_prio_tbl[j].bss_prio_head) { - bssprio_node = + adapter->bss_prio_tbl[j].bss_prio_cur = list_first_entry(&adapter->bss_prio_tbl[j] .bss_prio_head, struct mwifiex_bss_prio_node, list); - bssprio_head = bssprio_node; - } else { - bssprio_node = adapter->bss_prio_tbl[j].bss_prio_cur; - bssprio_head = bssprio_node; } + bssprio_node = adapter->bss_prio_tbl[j].bss_prio_cur; + bssprio_head = bssprio_node; + do { priv_tmp = bssprio_node->priv; hqp = &priv_tmp->wmm.highest_queued_prio;