mwifiex: have same priority for AP and station traffic
authorAmitkumar Karwar <akarwar@marvell.com>
Tue, 11 Sep 2012 01:30:43 +0000 (18:30 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 11 Sep 2012 19:31:52 +0000 (15:31 -0400)
Currently AP interface has higher priority over station. Hence
separate entries are created in "adapter->bss_prio_tbl" for these
interfaces and station packet is dequeued only if there is not
packet in queue for AP. It is observed that ping for station
interface doesn't work if heavy traffic is running on AP.

The problem is fixed by having same priority for both the
interfaces. This patch also removes an extra initialisation
for "priv->bss_priority".

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/cfg80211.c
drivers/net/wireless/mwifiex/main.c

index f7a06d2bc670d72f34e292149942294a73ad4b94..7113086c6c036899f5dca1b024df56cb03af0c04 100644 (file)
@@ -1641,7 +1641,7 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
 
                priv->bss_type = MWIFIEX_BSS_TYPE_STA;
                priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II;
-               priv->bss_priority = MWIFIEX_BSS_ROLE_STA;
+               priv->bss_priority = 0;
                priv->bss_role = MWIFIEX_BSS_ROLE_STA;
                priv->bss_num = 0;
 
@@ -1664,7 +1664,7 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy,
 
                priv->bss_type = MWIFIEX_BSS_TYPE_UAP;
                priv->frame_type = MWIFIEX_DATA_FRAME_TYPE_ETH_II;
-               priv->bss_priority = MWIFIEX_BSS_ROLE_UAP;
+               priv->bss_priority = 0;
                priv->bss_role = MWIFIEX_BSS_ROLE_UAP;
                priv->bss_started = 0;
                priv->bss_num = 0;
index cb1155286e0fb65ace438688de95938039144367..bfd6667be01eb985ecffeb2802c7daeb08b475f0 100644 (file)
@@ -72,7 +72,6 @@ static int mwifiex_register(void *card, struct mwifiex_if_ops *if_ops,
                        goto error;
 
                adapter->priv[i]->adapter = adapter;
-               adapter->priv[i]->bss_priority = i;
                adapter->priv_num++;
        }
        mwifiex_init_lock_list(adapter);