projects
/
GitHub
/
LineageOS
/
android_kernel_samsung_universal7580.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
403a3a1
)
cfg80211: fix for duplicate response for driver reg request
author
Luis R. Rodriguez
<lrodriguez@atheros.com>
Tue, 9 Jun 2009 01:54:37 +0000
(18:54 -0700)
committer
John W. Linville
<linville@tuxdriver.com>
Wed, 10 Jun 2009 17:28:37 +0000
(13:28 -0400)
As Pavel puts userspace can be stupid and should not
cause kernel crashes. In this case Pavel was able to
find a crash here but unable to reproduce. Either way
lets deal with this.
This should fix:
------------[ cut here ]------------
kernel BUG at /home/proski/src/linux-2.6/net/wireless/reg.c:2132!
Oops: Exception in kernel mode, sig: 5 [#1]
PowerMac
Modules linked in: ath5k ath [last unloaded: scsi_wait_scan]
NIP:
c02f3eac
LR:
c02f3d08
CTR:
00000000
REGS:
ef107aa0
TRAP: 0700 Not tainted (2.6.30-rc8-wl)
MSR:
00029032
<EE,ME,CE,IR,DR> CR:
88002442
XER:
20000000
TASK =
ef84acb0
[834] 'crda' THREAD:
ef106000
GPR00:
ef953840
ef107b50
ef84acb0
ef1380bc
00000006
c035a5c8
ef107b90
c035a5c8
GPR08:
00080005
efb68980
c0445628
ef130004
28002422
10019ce0
10012d3c
00000001
GPR16:
1070b2ac
00000005
48023558
1070b380
4802304c
00000000
ef107ddc
c035a5c8
GPR24:
ef107b78
c0443350
ef8bcb00
00000005
ef138080
c04a6a70
c04a0000
ef8bcb00
NIP [
c02f3eac
] set_regdom+0x4c4/0x4ec
LR [
c02f3d08
] set_regdom+0x320/0x4ec
Call Trace:
[
ef107b50
] [
c02f3d08
] set_regdom+0x320/0x4ec (unreliable)
[
ef107b70
] [
c02f9d10
] nl80211_set_reg+0x140/0x2d0
[
ef107bc0
] [
c02aa2b8
] genl_rcv_msg+0x204/0x228
[
ef107c10
] [
c02a97cc
] netlink_rcv_skb+0xe8/0x10c
[
ef107c30
] [
c02aa094
] genl_rcv+0x3c/0x5c
[
ef107c40
] [
c02a9050
] netlink_unicast+0x308/0x36c
[
ef107c80
] [
c02a92bc
] netlink_sendmsg+0x208/0x2f0
[
ef107cd0
] [
c0282048
] sock_sendmsg+0xac/0xe4
[
ef107db0
] [
c02822b4
] sys_sendmsg+0x234/0x2d8
[
ef107f00
] [
c0283a88
] sys_socketcall+0x108/0x258
[
ef107f40
] [
c0012790
] ret_from_syscall+0x0/0x38
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/reg.c
patch
|
blob
|
blame
|
history
diff --git
a/net/wireless/reg.c
b/net/wireless/reg.c
index ea4c299fbe3b55755feb58adb53f6fc79c66da34..5e14371cda704c2c103df0449f929069752148f8 100644
(file)
--- a/
net/wireless/reg.c
+++ b/
net/wireless/reg.c
@@
-2129,7
+2129,12
@@
static int __set_regdom(const struct ieee80211_regdomain *rd)
* driver wanted to the wiphy to deal with conflicts
*/
- BUG_ON(request_wiphy->regd);
+ /*
+ * Userspace could have sent two replies with only
+ * one kernel request.
+ */
+ if (request_wiphy->regd)
+ return -EALREADY;
r = reg_copy_regd(&request_wiphy->regd, rd);
if (r)