Modify

Opened 3 years ago

Closed 19 months ago

#17473 closed defect (fixed)

Kernel oops when disconnecting WIFI USB dongle

Reported by: kristian.evensen@… Owned by: developers
Priority: normal Milestone:
Component: packages Version: Trunk
Keywords: Cc:

Description

When disconnecting a wifi USB dongle (independent of chipset), it triggers a kernel panic in routers running current OpenWRT trunk:

[ 429.730000] usb 1-1.1.5.4: USB disconnect, device number 10
[ 429.760000] CPU 0 Unable to handle kernel paging request at virtual
address 00100104, epc == 86e93018, ra == 86e93010
[ 429.770000] Oops#1:
[ 429.770000] CPU: 0 PID: 292 Comm: khubd Not tainted 3.14.12 #4
[ 429.770000] task: 878ad770 ti: 87b0c000 task.ti: 87b0c000
[ 429.770000] $ 0 : 00000000 00000000 00200200 00100100
[ 429.770000] $ 4 : 87b0dce0 87b0dee0 80350000 00000008
[ 429.770000] $ 8 : 00090040 86a6a080 00000020 00090040
[ 429.770000] $12 : 00000013 0000000e 00000007 00000001
[ 429.770000] $16 : 85cc91a0 87b0dcd8 00100100 85cc91a8
[ 429.770000] $20 : 85cc91a0 00200200 86948000 87b41838
[ 429.770000] $24 : 80327df0 8010fe04
[ 429.770000] $28 : 87b0c000 87b0dcc8 00000000 86e93010
[ 429.770000] Hi : 00000350
[ 429.770000] Lo : 00000006
[ 429.770000] epc : 86e93018
ieee80211_remove_interfaces+0x128/0x1b4 [mac80211]
[ 429.770000] Not tainted
[ 429.770000] ra : 86e93010
ieee80211_remove_interfaces+0x120/0x1b4 [mac80211]
[ 429.770000] Status: 1100dc03 KERNEL EXL IE
[ 429.770000] Cause : 0080000c
[ 429.770000] BadVA : 00100104
[ 429.770000] PrId : 0001974c (MIPS 74Kc)
[ 429.770000] Modules linked in: ath9k rtl8192se rtl8192de rtl8192cu
rtl8192ce ath9k_htc ath9k_common rtl_usb rtl_pci pppoe ppp_async
option iptable_nat ath9k_hw ath usb_wwan smsc95xx rtlwifi rtl8187
rt73usb rt2x00usb rt2x00lib rndis_host qmi_wwan pppox ppp_generic
nf_nat_ipv4 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE huawei_cdc_ncm
cfg80211 cdc_ncm cdc_ether ax88179_178a asix xt_time xt_tcpudp
xt_tcpmss xt_string xt_statistic xt_state xt_recent xt_quota
xt_pkttype xt_owner xt_nfacct xt_nat xt_multiport xt_mark xt_mac
xt_limit xt_length xt_id xt_hl xt_helper xt_ecn xt_dscp xt_conntrack
xt_connmark xt_connlimit xt_connbytes xt_comment xt_addrtype xt_TCPMSS
xt_REDIRECT xt_NFQUEUE xt_LOG xt_HL xt_DSCP xt_CT xt_CLASSIFY
usbserial usbnet ts_kmp ts_fsm ts_bm slhc rtl8192c_common
nfnetlink_queue nfnetlink_acct nf_nat_irc nf_nat_ftp nf_nat
nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw
iptable_mangle iptable_filter ipt_REJECT ipt_ECN ipheth ip_tables
crc16 crc_itu_t crc_ccitt compat cdc_wdm cdc_acm act_connmark
act_skbedit act_mirred em_u32 cls_u32 cls_tcindex cls_flow cls_route
cls_fw sch_hfsc sch_ingress ledtrig_usbdev ip6t_REJECT ip6table_raw
ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6
nf_defrag_ipv6 ifb ipv6 eeprom_93cx6 arc4 crypto_blkcipher
ehci_platform ehci_hcd gpio_button_hotplug usbcore nls_base usb_common
mii
[ 429.770000] Process khubd (pid: 292, threadinfo=87b0c000,
task=878ad770, tls=00000000)
[ 429.770000] Stack : 85cc93a0 86f69350 00000000 00000000 87b0dcd8
87b0dcd8 00100100 00200200
[ 429.770000] 86948000 85cc8ae0 85cc9460 86b9fa20 86f69350 00000000
00000000 86e80fac
[ 429.770000] 00000004 85cc8ae0 85cc9460 86b9fa20 85cc8ae0 86e14ddc
87b0dd1c 87b0bbd0
[ 429.770000] 86b9fa20 86948000 86b9fa20 86948000 86b9fa00 87b2c580
879ff000 800def9c
[ 429.770000] 87b39180 80131108 86b9fa20 86f69350 87b39180 879ff000
86b9fa00 8008d734
[ 429.770000] ...
[ 429.770000] Call Trace:
[ 429.770000] [<86e93018>] ieee80211_remove_interfaces+0x128/0x1b4 [mac80211]
[ 429.770000] [<86e80fac>] ieee80211_unregister_hw+0x3c/0xe4 [mac80211]
[ 429.770000] [<86e14ddc>] rtl_usb_disconnect+0x4c/0xf4 [rtl_usb]
[ 429.770000] [<87b2c580>] usb_deregister+0x228/0x2ec [usbcore]
[ 429.770000] [<8008d734>] device_release_driver+0x6c/0xd0
[ 429.770000] [<80117f64>] device_release_driver+0x28/0x40
[ 429.770000] [<800edffc>] bus_remove_device+0xec/0x120
[ 429.770000] [<801176fc>] device_del+0x110/0x170
[ 429.770000] [<87b2ad58>] usb_disable_device+0xb0/0x1d8 [usbcore]
[ 429.770000] [<87b22920>] usb_disconnect+0xac/0x408 [usbcore]
[ 429.770000] [<87b24a68>] usb_reset_device+0xd28/0x15c8 [usbcore]
[ 429.770000] [<80121c0c>] do_exit+0x72c/0x744
[ 429.770000]
[ 429.770000]
[ 429.770000] Code: 27a40018 8fa2001c 8fa30018 <ac620004> ac430000
8fb00010 3c030010 3c020020 24630100
[ 430.110000] ---[ end trace 6ca2573cb8fc44d5 ]---

The issues is fixed by commit https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/net/mac80211/iface.c?id=87757a917b0b3c0787e0563c679762152be81312. The commit is included in latest 3.10-stable and latest compat-wireless, but not in the compat-wirless currently used by OpenWRT (22-7-2014).

Attachments (0)

Change History (4)

comment:1 Changed 3 years ago by Polydeukes

I have the same issue. Did you find any solution? Any hint is appreciated.

Here is a related ticket: /ticket/17378.html

comment:2 follow-up: Changed 3 years ago by anonymous

Yes, as I wrote, the issue is solved upstream and in more recent compat-wireless. To solve it, either wait until compat-wireless used by OpenWRT is updated, or add the patch I link to.

comment:3 in reply to: ↑ 2 Changed 3 years ago by Polydeukes

Replying to anonymous:

Yes, as I wrote, the issue is solved upstream and in more recent compat-wireless. To solve it, either wait until compat-wireless used by OpenWRT is updated, or add the patch I link to.

Sorry, I was looking into the wrong directory (in kernel sources) instead of in the compat-wireless sources.

I have tested the patch for 4 days and works well, there aren't more kernel oops.

Thanks for the reply.

comment:4 Changed 19 months ago by jogo

  • Resolution set to fixed
  • Status changed from new to closed

This issue is fixed in kernel version 3.16, and the fix was backported down to 3.10 (with 3.10.45), so trunk, cc/15.05 (3.18) and bb/12.09 (3.10.49) are not affected anymore.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.