From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Scott James Remnant <keybuk@google.com>,
"Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>,
"John W. Linville" <linville@tuxdriver.com>
Subject: [14/53] cfg80211: fix bug on regulatory core exit on access to last_request
Date: Tue, 22 Nov 2011 16:25:14 -0800 [thread overview]
Message-ID: <20111123002554.218686982@clark.kroah.org> (raw)
In-Reply-To: <20111123002601.GA14467@kroah.com>
3.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
commit 58ebacc66bd11be2327edcefc79de94bd6f5bb4a upstream.
Commit 4d9d88d1 by Scott James Remnant <keybuk@google.com> added
the .uevent() callback for the regulatory device used during
the platform device registration. The change was done to account
for queuing up udev change requests through udevadm triggers.
The change also meant that upon regulatory core exit we will now
send a uevent() but the uevent() callback, reg_device_uevent(),
also accessed last_request. Right before commiting device suicide
we free'd last_request but never set it to NULL so
platform_device_unregister() would lead to bogus kernel paging
request. Fix this and also simply supress uevents right before
we commit suicide as they are pointless.
This fix is required for kernels >= v2.6.39
$ git describe --contains 4d9d88d1
v2.6.39-rc1~468^2~25^2^2~21
The impact of not having this present is that a bogus paging
access may occur (only read) upon cfg80211 unload time. You
may also get this BUG complaint below. Although Johannes
could not reproduce the issue this fix is theoretically correct.
mac80211_hwsim: unregister radios
mac80211_hwsim: closing netlink
BUG: unable to handle kernel paging request at ffff88001a06b5ab
IP: [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
PGD 1836063 PUD 183a063 PMD 1ffcb067 PTE 1a06b160
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
CPU 0
Modules linked in: cfg80211(-) [last unloaded: mac80211]
Pid: 2279, comm: rmmod Tainted: G W 3.1.0-wl+ #663 Bochs Bochs
RIP: 0010:[<ffffffffa030df9a>] [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
RSP: 0000:ffff88001c5f9d58 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff88001d2eda88 RCX: ffff88001c7468fc
RDX: ffff88001a06b5a0 RSI: ffff88001c7467b0 RDI: ffff88001c7467b0
RBP: ffff88001c5f9d58 R08: 000000000000ffff R09: 000000000000ffff
R10: 0000000000000000 R11: 0000000000000001 R12: ffff88001c7467b0
R13: ffff88001d2eda78 R14: ffffffff8164a840 R15: 0000000000000001
FS: 00007f8a91d8a6e0(0000) GS:ffff88001fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffff88001a06b5ab CR3: 000000001c62e000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process rmmod (pid: 2279, threadinfo ffff88001c5f8000, task ffff88000023c780)
Stack:
ffff88001c5f9d98 ffffffff812ff7e5 ffffffff8176ab3d ffff88001c7468c2
000000000000ffff ffff88001d2eda88 ffff88001c7467b0 ffff880000114820
ffff88001c5f9e38 ffffffff81241dc7 ffff88001c5f9db8 ffffffff81040189
Call Trace:
[<ffffffff812ff7e5>] dev_uevent+0xc5/0x170
[<ffffffff81241dc7>] kobject_uevent_env+0x1f7/0x490
[<ffffffff81040189>] ? sub_preempt_count+0x29/0x60
[<ffffffff814cab1a>] ? _raw_spin_unlock_irqrestore+0x4a/0x90
[<ffffffff81305307>] ? devres_release_all+0x27/0x60
[<ffffffff8124206b>] kobject_uevent+0xb/0x10
[<ffffffff812fee27>] device_del+0x157/0x1b0
[<ffffffff8130377d>] platform_device_del+0x1d/0x90
[<ffffffff81303b76>] platform_device_unregister+0x16/0x30
[<ffffffffa030fffd>] regulatory_exit+0x5d/0x180 [cfg80211]
[<ffffffffa032bec3>] cfg80211_exit+0x2b/0x45 [cfg80211]
[<ffffffff8109a84c>] sys_delete_module+0x16c/0x220
[<ffffffff8108a23e>] ? trace_hardirqs_on_caller+0x7e/0x120
[<ffffffff814cba02>] system_call_fastpath+0x16/0x1b
Code: <all your base are belong to me>
RIP [<ffffffffa030df9a>] reg_device_uevent+0x1a/0x50 [cfg80211]
RSP <ffff88001c5f9d58>
CR2: ffff88001a06b5ab
---[ end trace 147c5099a411e8c0 ]---
Reported-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Scott James Remnant <keybuk@google.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/wireless/reg.c | 3 +++
1 file changed, 3 insertions(+)
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2254,6 +2254,9 @@ void /* __init_or_exit */ regulatory_exi
kfree(last_request);
+ last_request = NULL;
+ dev_set_uevent_suppress(®_pdev->dev, true);
+
platform_device_unregister(reg_pdev);
spin_lock_bh(®_pending_beacons_lock);
next prev parent reply other threads:[~2011-11-23 0:54 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-23 0:26 [00/53] 3.1.3-stable review Greg KH
2011-11-23 0:25 ` [01/53] genirq: Fix irqfixup, irqpoll regression Greg KH
2011-11-23 0:25 ` [02/53] ALSA: hda - Fix the connection selection of ADCs on Cirrus codecs Greg KH
2011-11-23 0:25 ` [03/53] [SCSI] fix WARNING: at drivers/scsi/scsi_lib.c:1704 Greg KH
2011-11-23 0:25 ` [04/53] [SCSI] hpsa: Disable ASPM Greg KH
2011-11-23 0:25 ` [05/53] [SCSI] aacraid: controller hangs if kernel uses non-default ASPM policy Greg KH
2011-11-23 0:25 ` [06/53] [media] saa7164: Add support for another HVR2200 hardware revision Greg KH
2011-11-23 0:25 ` [07/53] KVM: s390: Fix RUNNING flag misinterpretation Greg KH
2011-11-23 0:25 ` [08/53] ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ Greg KH
2011-11-23 0:25 ` [09/53] Net, libertas: Resolve memory leak in if_spi_host_to_card() Greg KH
2011-11-23 0:25 ` [10/53] rt2x00: Fix sleep-while-atomic bug in powersaving code Greg KH
2011-11-23 0:25 ` [11/53] mac80211: fix NULL dereference in radiotap code Greg KH
2011-11-23 0:25 ` [12/53] mac80211: fix bug in ieee80211_build_probe_req Greg KH
2011-11-23 0:25 ` [13/53] nl80211: fix HT capability attribute validation Greg KH
2011-11-23 0:25 ` Greg KH [this message]
2011-11-23 0:25 ` [15/53] ip6_tunnel: copy parms.name after register_netdevice Greg KH
2011-11-23 0:25 ` [16/53] PM / driver core: disable devices runtime PM during shutdown Greg KH
2011-11-23 0:25 ` [17/53] pch_phub: Support new device LAPIS Semiconductor ML7831 IOH Greg KH
2011-11-23 0:25 ` [18/53] pch_phub: Fix MAC address writing issue for LAPIS ML7831 Greg KH
2011-11-23 0:25 ` [19/53] pch_uart: Fix hw-flow control issue Greg KH
2011-11-23 0:25 ` [20/53] pch_uart: Fix DMA resource leak issue Greg KH
2011-11-23 0:25 ` [21/53] pch_uart: Support new device LAPIS Semiconductor ML7831 IOH Greg KH
2011-11-23 0:25 ` [22/53] tty: hvc_dcc: Fix duplicate character inputs Greg KH
2011-11-23 0:25 ` [23/53] TTY: ldisc, allow waiting for ldisc arbitrarily long Greg KH
2011-11-23 0:25 ` [24/53] TTY: ldisc, move wait idle to caller Greg KH
2011-11-23 0:25 ` [25/53] TTY: ldisc, wait for ldisc infinitely in hangup Greg KH
2011-11-23 0:25 ` [26/53] nfs: when attempting to open a directory, fall back on normal lookup (try #5) Greg KH
2011-11-23 0:25 ` [27/53] ALSA: hda - fix ELD memory leak Greg KH
2011-11-23 0:25 ` [28/53] pcie-gadget-spear: Add "platform:" prefix for platform modalias Greg KH
2011-11-23 0:25 ` [29/53] drivers/base/node.c: fix compilation error with older versions of gcc Greg KH
2011-11-23 0:25 ` [30/53] xhci: Set slot and ep0 flags for address command Greg KH
2011-11-23 0:25 ` [31/53] usb, xhci: Clear warm reset change event during init Greg KH
2011-11-23 0:25 ` [32/53] usb, xhci: fix lockdep warning on endpoint timeout Greg KH
2011-11-23 0:25 ` [33/53] USB: XHCI: resume root hubs when the controller resumes Greg KH
2011-11-23 0:25 ` [34/53] USB: option: release new PID for ZTE 3G modem Greg KH
2011-11-23 0:25 ` [35/53] USB: option: add PID of Huawei E173s " Greg KH
2011-11-23 0:25 ` [36/53] USB: serial: pl2303: rm duplicate id Greg KH
2011-11-23 0:25 ` [37/53] USB: pch_udc: Support new device LAPIS Semiconductor ML7831 IOH Greg KH
2011-11-23 0:25 ` [38/53] USB: cdc-acm: Fix disconnect() vs close() race Greg KH
2011-11-23 0:25 ` [39/53] USB: workaround for bug in old version of GCC Greg KH
2011-11-23 0:25 ` [40/53] USB: ark3116 initialisation fix Greg KH
2011-11-23 0:25 ` [41/53] USB: Fix Corruption issue in USB ftdi driver ftdi_sio.c Greg KH
2011-11-23 0:25 ` [42/53] usb-storage: Accept 8020i-protocol commands longer than 12 bytes Greg KH
2011-11-23 0:25 ` [43/53] USB: EHCI: fix HUB TT scheduling issue with iso transfer Greg KH
2011-11-23 0:25 ` [44/53] USB: add quirk for Logitech C600 web cam Greg KH
2011-11-23 0:25 ` [45/53] USB: quirks: adding more quirky webcams to avoid squeaky audio Greg KH
2011-11-23 0:25 ` [46/53] drm/i915: fix IVB cursor support Greg KH
2011-11-23 0:25 ` [47/53] drm/i915: always set FDI composite sync bit Greg KH
2011-11-23 0:25 ` [48/53] batman-adv: fix tt_local_reset_flags() function Greg KH
2011-11-23 0:25 ` [49/53] batman-adv: correctly set the data field in the TT_REPONSE packet Greg KH
2011-11-23 0:25 ` [50/53] batman-adv: remove references for global tt entries Greg KH
2011-11-23 0:25 ` [51/53] batman-adv: add sanity check when removing global tts Greg KH
2011-11-23 0:25 ` [52/53] batman-adv: unify hash_entry field position in tt_local/global_entry Greg KH
2011-11-23 0:25 ` [53/53] vmscan: fix shrinker callback bug in fs/super.c Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111123002554.218686982@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=keybuk@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mcgrof@qca.qualcomm.com \
--cc=stable@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®