Search Linux Wireless

Re: [PATCH 7/8] brcmfmac: revise handling events in receive path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11 April 2016 at 11:35, Arend van Spriel <arend@xxxxxxxxxxxx> wrote:
> Move event handling out of brcmf_netif_rx() avoiding the need
> to pass a flag. This flag is only ever true for USB hosts as
> other interface use separate brcmf_rx_event() function.
>
> Reviewed-by: Hante Meuleman <hante.meuleman@xxxxxxxxxxxx>
> Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@xxxxxxxxxxxx>
> Reviewed-by: Franky Lin <franky.lin@xxxxxxxxxxxx>
> Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>

With this patch applied I'm getting:
Unable to handle kernel NULL pointer dereference at virtual address 000001fc
on the first brcmf_netif_rx call.

I'm using D-Link DIR-885L with 14e4:4365 (BCM4366).
[   44.086579] Unable to handle kernel NULL pointer dereference at virtual address 000001fc
[   44.094706] pgd = c0004000
[   44.097415] [000001fc] *pgd=00000000
[   44.101019] Internal error: Oops: 17 [#1] SMP ARM
[   44.105726] Modules linked in: pppoe ppp_async iptable_nat brcmfmac b43 pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntn
[   44.168765] CPU: 0 PID: 632 Comm: irq/32-brcmf_pc Not tainted 4.4.7 #6
[   44.175305] Hardware name: BCM5301X
[   44.178799] task: c7a16400 ti: c73de000 task.ti: c73de000
[   44.184215] PC is at get_rps_cpu+0x24/0x330
[   44.188410] LR is at netif_rx_internal+0x8c/0xbc
[   44.193038] pc : [<c0251284>]    lr : [<c0253ff8>]    psr: 60000013
[   44.193038] sp : c73dfdc8  ip : c73dfe18  fp : c73dfe14
[   44.204543] r10: 00000000  r9 : c8ce5000  r8 : c8ce5000
[   44.209774] r7 : c7a08e80  r6 : 00000000  r5 : c047c848  r4 : c797a3c0
[   44.216311] r3 : 00000000  r2 : c73dfe24  r1 : c797a3c0  r0 : 00000000
[   44.222849] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   44.229995] Control: 10c5387d  Table: 073d004a  DAC: 00000051
[   44.235748] Process irq/32-brcmf_pc (pid: 632, stack limit = 0xc73de190)
[   44.242459] Stack: (0xc73dfdc8 to 0xc73e0000)
[   44.246821] fdc0:                   c6ec8320 00000000 c73dfe14 c73dfe24 c0019c3c c009c93c
[   44.255012] fde0: c047ecc4 c04bd550 c7a08e00 c797a3c0 c047c848 c797a3c0 c7a08e80 c8ce5000
[   44.263211] fe00: c8ce5000 00000000 c73dfe44 c73dfe18 c0253ff8 c025126c c000acf4 c73dfe3c
[   44.271401] fe20: c001a760 c73dfe28 c71d8410 c71d8000 c797a3c0 00000000 c73dfe5c c73dfe48
[   44.279592] fe40: c0254074 c0253f78 c797a3c0 00000000 c73dfe74 c73dfe60 bf21f40c c0254070
[   44.287791] fe60: c712a9c0 00000000 c73dfebc c73dfe78 bf224ea4 bf21f36c c7a16400 c6dd1840
[   44.295981] fe80: 00000000 00000014 c0477840 00019e7c c73dfebc c712a9c0 00010000 c787e3c0
[   44.304172] fea0: c0057bb0 c719c1e4 c047f842 00000000 c73dfedc c73dfec0 bf224f8c bf224a38
[   44.312372] fec0: c7ad7000 00010000 c787e3c0 c0057bb0 c73dff04 c73dfee0 bf229608 bf224f6c
[   44.320570] fee0: c719c1c0 c719c1c0 c787e3c0 c0057bb0 c719c1e4 c047f842 c73dff24 c73dff08
[   44.328761] ff00: c0057bd4 bf229450 c787e3c0 c719c1c0 c73de000 c0057bb0 c73dff5c c73dff28
[   44.336951] ff20: c0057eb8 c0057bbc 00000000 c0057d0c 00000000 c7244d80 00000000 c719c1c0
[   44.345141] ff40: c0057dc0 00000000 00000000 00000000 c73dffac c73dff60 c00393a4 c0057dcc
[   44.353332] ff60: c73dff8c 00000000 c00228cc c719c1c0 00000000 00000000 c73dff78 c73dff78
[   44.361522] ff80: 00000000 00000000 c73dff88 c73dff88 c7244d80 c00392c4 00000000 00000000
[   44.369712] ffa0: 00000000 c73dffb0 c00097b8 c00392d0 00000000 00000000 00000000 00000000
[   44.377903] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   44.386094] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 c73dfff4 00000000
[   44.394281] Backtrace: 
[   44.396743] [<c0251260>] (get_rps_cpu) from [<c0253ff8>] (netif_rx_internal+0x8c/0xbc)
[   44.404674]  r10:00000000 r9:c8ce5000 r8:c8ce5000 r7:c7a08e80 r6:c797a3c0 r5:c047c848
[   44.412559]  r4:c797a3c0
[   44.415106] [<c0253f6c>] (netif_rx_internal) from [<c0254074>] (netif_rx_ni+0x10/0x44)
[   44.423039]  r5:00000000 r4:c797a3c0
[   44.426665] [<c0254064>] (netif_rx_ni) from [<bf21f40c>] (brcmf_netif_rx+0xac/0xbc [brcmfmac])
[   44.435294]  r5:00000000 r4:c797a3c0
[   44.438909] [<bf21f360>] (brcmf_netif_rx [brcmfmac]) from [<bf224ea4>] (brcmf_msgbuf_txdata+0x5c0/0x67c [brcmfmac])
[   44.449360]  r5:00000000 r4:c712a9c0
[   44.452973] [<bf224a2c>] (brcmf_msgbuf_txdata [brcmfmac]) from [<bf224f8c>] (brcmf_proto_msgbuf_rx_trigger+0x2c/0xd0 [brcmfmac])
[   44.464557]  r10:00000000 r9:c047f842 r8:c719c1e4 r7:c0057bb0 r6:c787e3c0 r5:00010000
[   44.472443]  r4:c712a9c0
[   44.475002] [<bf224f60>] (brcmf_proto_msgbuf_rx_trigger [brcmfmac]) from [<bf229608>] (brcmf_pcie_isr_thread+0x1c4/0x238 [brcmfmac])
[   44.486935]  r7:c0057bb0 r6:c787e3c0 r5:00010000 r4:c7ad7000
[   44.492648] [<bf229444>] (brcmf_pcie_isr_thread [brcmfmac]) from [<c0057bd4>] (irq_thread_fn+0x24/0x3c)
[   44.502054]  r9:c047f842 r8:c719c1e4 r7:c0057bb0 r6:c787e3c0 r5:c719c1c0 r4:c719c1c0
[   44.509857] [<c0057bb0>] (irq_thread_fn) from [<c0057eb8>] (irq_thread+0xf8/0x1e4)
[   44.517442]  r7:c0057bb0 r6:c73de000 r5:c719c1c0 r4:c787e3c0
[   44.523150] [<c0057dc0>] (irq_thread) from [<c00393a4>] (kthread+0xe0/0xf4)
[   44.530124]  r10:00000000 r9:00000000 r8:00000000 r7:c0057dc0 r6:c719c1c0 r5:00000000
[   44.538010]  r4:c7244d80
[   44.540557] [<c00392c4>] (kthread) from [<c00097b8>] (ret_from_fork+0x14/0x3c)
[   44.547793]  r7:00000000 r6:00000000 r5:c00392c4 r4:c7244d80
[   44.553498] Code: e50b2040 e1a06000 e3530000 e1a04001 (e59021fc) 
[   44.559625] ---[ end trace fbc5940e895b0890 ]---
[   44.564276] Unable to handle kernel paging request at virtual address ffffffec
[   44.571526] pgd = c0004000
[   44.574237] [ffffffec] *pgd=07fff841, *pte=00000000, *ppte=00000000
[   44.580550] Internal error: Oops: 27 [#2] SMP ARM
[   44.585264] Modules linked in: pppoe ppp_async iptable_nat brcmfmac b43 pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntn
[   44.648302] CPU: 0 PID: 632 Comm: irq/32-brcmf_pc Tainted: G      D         4.4.7 #6
[   44.656062] Hardware name: BCM5301X
[   44.659554] task: c7a16400 ti: c73de000 task.ti: c73de000
[   44.664962] PC is at kthread_data+0x10/0x18
[   44.669155] LR is at irq_thread_dtor+0x58/0xb4
[   44.673603] pc : [<c0039844>]    lr : [<c0057d64>]    psr: 20000113
[   44.673603] sp : c73dfbd0  ip : c73dfbe0  fp : c73dfbdc
[   44.685109] r10: 00000000  r9 : c0480878  r8 : c73dfc18
[   44.690340] r7 : c7a16400  r6 : 00000000  r5 : c7a16400  r4 : c7a16400
[   44.696876] r3 : 00000000  r2 : 0000007c  r1 : 00000000  r0 : c7a16400
[   44.703414] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   44.710559] Control: 10c5387d  Table: 073d004a  DAC: 00000051
[   44.716313] Process irq/32-brcmf_pc (pid: 632, stack limit = 0xc73de190)
[   44.723023] Stack: (0xc73dfbd0 to 0xc73e0000)
[   44.727386] fbc0:                                     c73dfbf4 c73dfbe0 c0057d64 c0039840
[   44.735586] fbe0: c7a16400 c04940dc c73dfc14 c73dfbf8 c0037ca8 c0057d18 c7a16400 00000000
[   44.743785] fc00: c04935ec c7a16400 c73dfc34 c73dfc18 c002248c c0037c14 c73dfc34 c73dfc28
[   44.751985] fc20: c0021538 c7a16400 c73dfc74 c73dfc38 c00174a8 c002213c c73de190 0000000b
[   44.760183] fc40: c001ab84 60000113 c040ca10 000001fc c73dfd78 00000017 00000000 c7a16400
[   44.768383] fc60: 00000000 00000017 c73dfc8c c73dfc78 c001ad04 c001725c 00000017 000001fc
[   44.776582] fc80: c73dfccc c73dfc90 c001afa0 c001acb4 00000001 00000000 c73dfc94 00000003
[   44.784772] fca0: c73dfcd4 00000017 000001fc c0480d58 c73dfd78 c8ce5000 c8ce5000 00000000
[   44.792972] fcc0: c73dfd74 c73dfcd0 c00092ec c001ad30 c0088290 c0086198 00000141 c6dd1840
[   44.801170] fce0: c73dfd14 00000104 c047f780 c047ee04 fffffff8 00000000 00000008 ffffffff
[   44.809361] fd00: 40000093 00000001 c6edf580 00000000 00000000 00000000 c047f788 020b5220
[   44.817551] fd20: c73dfdac c047f780 00000003 02095220 c6acc000 c6acc000 00000001 a0000013
[   44.825751] fd40: c73dfdcc c73dfd50 00000740 80100008 c7a049c0 c7a049c0 c0251284 60000013
[   44.833949] fd60: ffffffff c73dfdac c73dfe14 c73dfd78 c000a000 c00092bc 00000000 c797a3c0
[   44.842140] fd80: c73dfe24 00000000 c797a3c0 c047c848 00000000 c7a08e80 c8ce5000 c8ce5000
[   44.850330] fda0: 00000000 c73dfe14 c73dfe18 c73dfdc8 c0253ff8 c0251284 60000013 ffffffff
[   44.858521] fdc0: 00000051 00000800 c6ec8320 00000000 c73dfe14 c73dfe24 c0019c3c c009c93c
[   44.866711] fde0: c047ecc4 c04bd550 c7a08e00 c797a3c0 c047c848 c797a3c0 c7a08e80 c8ce5000
[   44.874902] fe00: c8ce5000 00000000 c73dfe44 c73dfe18 c0253ff8 c025126c c000acf4 c73dfe3c
[   44.883102] fe20: c001a760 c73dfe28 c71d8410 c71d8000 c797a3c0 00000000 c73dfe5c c73dfe48
[   44.891300] fe40: c0254074 c0253f78 c797a3c0 00000000 c73dfe74 c73dfe60 bf21f40c c0254070
[   44.899491] fe60: c712a9c0 00000000 c73dfebc c73dfe78 bf224ea4 bf21f36c c7a16400 c6dd1840
[   44.907681] fe80: 00000000 00000014 c0477840 00019e7c c73dfebc c712a9c0 00010000 c787e3c0
[   44.915881] fea0: c0057bb0 c719c1e4 c047f842 00000000 c73dfedc c73dfec0 bf224f8c bf224a38
[   44.924079] fec0: c7ad7000 00010000 c787e3c0 c0057bb0 c73dff04 c73dfee0 bf229608 bf224f6c
[   44.932270] fee0: c719c1c0 c719c1c0 c787e3c0 c0057bb0 c719c1e4 c047f842 c73dff24 c73dff08
[   44.940470] ff00: c0057bd4 bf229450 c787e3c0 c719c1c0 c73de000 c0057bb0 c73dff5c c73dff28
[   44.948668] ff20: c0057eb8 c0057bbc 00000000 c0057d0c 00000000 c7244d80 00000000 c719c1c0
[   44.956858] ff40: c0057dc0 00000000 00000000 00000000 c73dffac c73dff60 c00393a4 c0057dcc
[   44.965049] ff60: c73dff8c 00000000 c00228cc c719c1c0 00000000 00000000 c73dff78 c73dff78
[   44.973240] ff80: 00000001 00010001 c73dff88 c73dff88 c7244d80 c00392c4 00000000 00000000
[   44.981438] ffa0: 00000000 c73dffb0 c00097b8 c00392d0 00000000 00000000 00000000 00000000
[   44.989629] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   44.997828] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 c73dfff4 00000000
[   45.006024] Backtrace: 
[   45.008483] [<c0039834>] (kthread_data) from [<c0057d64>] (irq_thread_dtor+0x58/0xb4)
[   45.016344] [<c0057d0c>] (irq_thread_dtor) from [<c0037ca8>] (task_work_run+0xa0/0xb4)
[   45.024277]  r5:c04940dc r4:c7a16400
[   45.027877] [<c0037c08>] (task_work_run) from [<c002248c>] (do_exit+0x35c/0x7cc)
[   45.035287]  r7:c7a16400 r6:c04935ec r5:00000000 r4:c7a16400
[   45.041003] [<c0022130>] (do_exit) from [<c00174a8>] (die+0x258/0x2dc)
[   45.047542]  r7:c7a16400
[   45.050093] [<c0017250>] (die) from [<c001ad04>] (__do_kernel_fault.part.0+0x5c/0x7c)
[   45.057935]  r10:00000017 r9:00000000 r8:c7a16400 r7:00000000 r6:00000017 r5:c73dfd78
[   45.065820]  r4:000001fc
[   45.068366] [<c001aca8>] (__do_kernel_fault.part.0) from [<c001afa0>] (do_page_fault+0x27c/0x294)
[   45.077257]  r7:000001fc r4:00000017
[   45.080856] [<c001ad24>] (do_page_fault) from [<c00092ec>] (do_DataAbort+0x3c/0xbc)
[   45.088529]  r10:00000000 r9:c8ce5000 r8:c8ce5000 r7:c73dfd78 r6:c0480d58 r5:000001fc
[   45.096415]  r4:00000017
[   45.098961] [<c00092b0>] (do_DataAbort) from [<c000a000>] (__dabt_svc+0x40/0x60)
[   45.106373] Exception stack(0xc73dfd78 to 0xc73dfdc0)
[   45.111431] fd60:                                                       00000000 c797a3c0
[   45.119624] fd80: c73dfe24 00000000 c797a3c0 c047c848 00000000 c7a08e80 c8ce5000 c8ce5000
[   45.127822] fda0: 00000000 c73dfe14 c73dfe18 c73dfdc8 c0253ff8 c0251284 60000013 ffffffff
[   45.136009]  r7:c73dfdac r6:ffffffff r5:60000013 r4:c0251284
[   45.141724] [<c0251260>] (get_rps_cpu) from [<c0253ff8>] (netif_rx_internal+0x8c/0xbc)
[   45.149658]  r10:00000000 r9:c8ce5000 r8:c8ce5000 r7:c7a08e80 r6:c797a3c0 r5:c047c848
[   45.157543]  r4:c797a3c0
[   45.160089] [<c0253f6c>] (netif_rx_internal) from [<c0254074>] (netif_rx_ni+0x10/0x44)
[   45.168023]  r5:00000000 r4:c797a3c0
[   45.171645] [<c0254064>] (netif_rx_ni) from [<bf21f40c>] (brcmf_netif_rx+0xac/0xbc [brcmfmac])
[   45.180270]  r5:00000000 r4:c797a3c0
[   45.183884] [<bf21f360>] (brcmf_netif_rx [brcmfmac]) from [<bf224ea4>] (brcmf_msgbuf_txdata+0x5c0/0x67c [brcmfmac])
[   45.194334]  r5:00000000 r4:c712a9c0
[   45.197947] [<bf224a2c>] (brcmf_msgbuf_txdata [brcmfmac]) from [<bf224f8c>] (brcmf_proto_msgbuf_rx_trigger+0x2c/0xd0 [brcmfmac])
[   45.209532]  r10:00000000 r9:c047f842 r8:c719c1e4 r7:c0057bb0 r6:c787e3c0 r5:00010000
[   45.217418]  r4:c712a9c0
[   45.219977] [<bf224f60>] (brcmf_proto_msgbuf_rx_trigger [brcmfmac]) from [<bf229608>] (brcmf_pcie_isr_thread+0x1c4/0x238 [brcmfmac])
[   45.231910]  r7:c0057bb0 r6:c787e3c0 r5:00010000 r4:c7ad7000
[   45.237622] [<bf229444>] (brcmf_pcie_isr_thread [brcmfmac]) from [<c0057bd4>] (irq_thread_fn+0x24/0x3c)
[   45.247028]  r9:c047f842 r8:c719c1e4 r7:c0057bb0 r6:c787e3c0 r5:c719c1c0 r4:c719c1c0
[   45.254831] [<c0057bb0>] (irq_thread_fn) from [<c0057eb8>] (irq_thread+0xf8/0x1e4)
[   45.262408]  r7:c0057bb0 r6:c73de000 r5:c719c1c0 r4:c787e3c0
[   45.268115] [<c0057dc0>] (irq_thread) from [<c00393a4>] (kthread+0xe0/0xf4)
[   45.275091]  r10:00000000 r9:00000000 r8:00000000 r7:c0057dc0 r6:c719c1c0 r5:00000000
[   45.282976]  r4:c7244d80
[   45.285522] [<c00392c4>] (kthread) from [<c00097b8>] (ret_from_fork+0x14/0x3c)
[   45.292760]  r7:00000000 r6:00000000 r5:c00392c4 r4:c7244d80
[   45.298464] Code: e1a0c00d e92dd800 e24cb004 e590325c (e5130014) 
[   45.304595] ---[ end trace fbc5940e895b0891 ]---
[   45.309242] Fixing recursive fault but reboot is needed!

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux