Patch "rtlwifi: Fix NULL dereference when PCI driver used as an AP" has been added to the 4.1-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
rtlwifi: Fix NULL dereference when PCI driver used as an AP
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
rtlwifi-fix-null-dereference-when-pci-driver-used-as-an-ap.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
7c62940165e9ae4004ce4e6b5117330bab94df68Mon Sep 17 00:00:00 2001
From: Luis Felipe Dominguez Vega <[email protected]>
Date: Wed, 29 Jul 2015 21:11:20 -0500
Subject: rtlwifi: Fix NULL dereference when PCI driver used as an AP
From: Luis Felipe Dominguez Vega <[email protected]>
commit 7c62940165e9ae4004ce4e6b5117330bab94df68 upstream.
In commit 33511b157bbcebaef853cc1811992b664a2e5862 ("rtlwifi: add support to send beacon frame"), the mechanism for sending beacons was established. That patch works correctly for rtl8192cu, but there is a possibility of getting the following warnings in the PCI drivers:
WARNING: CPU: 1 PID: 2439 at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x179/0x1d0 [mac80211]()
wlp5s0: Failed check-sdata-in-driver check, flags: 0x0
The warning is followed by a NULL pointer dereference as follows:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000006 IP: [<ffffffffc073998e>] rtl_get_tcb_desc+0x5e/0x760 [rtlwifi]
This problem was reported at http://thread.gmane.org/gmane.linux.kernel.wireless.general/138645,
but no solution was found at that time.
The problem was also reported at https://bugzilla.kernel.org/show_bug.cgi?id=9744
and this solution was developed and tested there.
The USB driver works with a NULL final argument in the adapter_tx() callback; however, the PCI drivers need a struct rtl_tcb_desc in that position.
--- drivers/net/wireless/rtlwifi/core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/net/wireless/rtlwifi/core.c +5 -2
@@ -1015,9 +1015,12 @@ static void send_beacon_frame(struct iee {struct rtl_priv *rtlpriv =rtl_priv (hw);struct sk_buff *skb =ieee80211_beacon_get (hw, vif); +struct rtl_tcb_desc tcb_desc; -if (skb) - rtlpriv->intf_ops->adapter_tx (hw,NULL , skb,NULL ); +if (skb) { +memset (&tcb_desc,0 ,sizeof (struct rtl_tcb_desc )); + rtlpriv->intf_ops->adapter_tx (hw,NULL , skb, &tcb_desc); + } } static void rtl_op_bss_info_changed(struct ieee80211_hw *hw,
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/rtlwifi-fix-null-dereference-when-pci-driver-used-as-an-ap.patch