Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07386343 authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman
Browse files

staging: r8712u: Add missing initialization and remove configuration parameter CONFIG_R8712_AP

When this driver was upgraded to the vendor 20100831 version in
commit 93c55dda 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: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c3b3b3f9
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -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
+1 −4
Original line number Diff line number Diff line
@@ -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;
}

+0 −4
Original line number Diff line number Diff line
@@ -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)