staging: r8712u: Add missing initialization and remove configuration parameter CONFIG...
authorLarry Finger <Larry.Finger@lwfinger.net>
Thu, 9 Feb 2012 22:37:17 +0000 (16:37 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Feb 2012 17:57:28 +0000 (09:57 -0800)
When this driver was upgraded to the vendor 20100831 version in
commit 93c55dda092c7 et al,, one listhead initialization was missed.
This broke complete operation of the driver whenever AP mode was
enabled. This fixes https://bugs.archlinux.org/task/27996.

The configuration parameter R8712_AP is misleading as the driver cannot
function as an AP without a heavily hacked version of hostapd. Thus, it
makes sense to remove the parameter; however the code and data configured
for the option is left in.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/Kconfig
drivers/staging/rtl8712/rtl871x_sta_mgt.c
drivers/staging/rtl8712/sta_info.h

index ea37473f71e5d5c5fd168a860de214eecd095024..6a43312380e0a6e7f7e9e8086f9d17d174285352 100644 (file)
@@ -9,13 +9,6 @@ config R8712U
        This option adds the Realtek RTL8712 USB device such as the D-Link DWA-130.
        If built as a module, it will be called r8712u.
 
-config R8712_AP
-       bool "Realtek RTL8712U AP code"
-       depends on R8712U
-       default N
-       ---help---
-       This option allows the Realtek RTL8712 USB device to be an Access Point.
-
 config R8712_TX_AGGR
        bool "Realtek RTL8712U Transmit Aggregation code"
        depends on R8712U && BROKEN
index 64f569618839669824b2c32dd2626943ea04d5bc..1247b3d9719db5f279e770bbf8cd2234d38cc7be 100644 (file)
@@ -42,9 +42,8 @@ static void _init_stainfo(struct sta_info *psta)
        _init_listhead(&psta->hash_list);
        _r8712_init_sta_xmit_priv(&psta->sta_xmitpriv);
        _r8712_init_sta_recv_priv(&psta->sta_recvpriv);
-#ifdef CONFIG_R8712_AP
+       _init_listhead(&psta->asoc_list);
        _init_listhead(&psta->auth_list);
-#endif
 }
 
 u32 _r8712_init_sta_priv(struct        sta_priv *pstapriv)
@@ -71,10 +70,8 @@ u32 _r8712_init_sta_priv(struct      sta_priv *pstapriv)
                                 get_list_head(&pstapriv->free_sta_queue));
                psta++;
        }
-#ifdef CONFIG_R8712_AP
        _init_listhead(&pstapriv->asoc_list);
        _init_listhead(&pstapriv->auth_list);
-#endif
        return _SUCCESS;
 }
 
index 48d6a14c8f5fd51c98926cec5f14ce01b422a6d3..f8016e9abffd0719b78f6dfc9805d04c19443db1 100644 (file)
@@ -90,7 +90,6 @@ struct sta_info {
         * curr_network(mlme_priv/security_priv/qos/ht) : AP CAP/INFO
         * sta_info: (AP & STA) CAP/INFO
         */
-#ifdef CONFIG_R8712_AP
        struct list_head asoc_list;
        struct list_head auth_list;
        unsigned int expire_to;
@@ -98,7 +97,6 @@ struct sta_info {
        unsigned int authalg;
        unsigned char chg_txt[128];
        unsigned int tx_ra_bitmap;
-#endif
 };
 
 struct sta_priv {
@@ -111,13 +109,11 @@ struct    sta_priv {
        struct  __queue sleep_q;
        struct  __queue wakeup_q;
        struct _adapter *padapter;
-#ifdef CONFIG_R8712_AP
        struct list_head asoc_list;
        struct list_head auth_list;
        unsigned int auth_to;  /* sec, time to expire in authenticating. */
        unsigned int assoc_to; /* sec, time to expire before associating. */
        unsigned int expire_to; /* sec , time to expire after associated. */
-#endif
 };
 
 static inline u32 wifi_mac_hash(u8 *mac)