svn commit: r324570 - head/sys/net80211

Adrian Chadd adrian at freebsd.org
Fri Oct 13 06:45:38 UTC 2017


god damnit.

lemme go look at what's going on.

thanks for the heads up!


-a


On 12 October 2017 at 18:53, Cy Schubert <Cy.Schubert at komquats.com> wrote:
> In message <201710122156.v9CLuwH4017132 at repo.freebsd.org>, Adrian Chadd
> writes:
>> Author: adrian
>> Date: Thu Oct 12 21:56:58 2017
>> New Revision: 324570
>> URL: https://svnweb.freebsd.org/changeset/base/324570
>>
>> Log:
>>   [net80211] begin handling multiple hardware decap'ed A-MSDU in the RX path.
>>
>>   The duplicate detection code currently expects A-MSDU frames to be encaped
>> -
>>   they're decap'ed /after/ duplicate detection.
>>
>>   However for ath10k (and iwm hardware later on) the firmware supports
>>   doing A-MSDU decap in hardware - which shows up as multiple frames with
>>   the same sequence number and IV.
>>
>>   This is the first part of decap handling - if we see a stretch of A-MSDU
>>   frames from the driver with the MORE bit set, then don't treat them
>>   as duplicates.
>>
>>   This isn't 100% complete as crypto sequence number handling and "A-MSDU in
>>   A-MPDU" needs handling, but it's a start.
>>
>>   This should be a glorified no-op for everyone.  Please tell me if it isn't.
>>
>
> Hi Adrian,
>
> This is causing iwn in my laptop a bit of gas.
>
> wlan0: Ethernet address: 20:6a:8a:72:03:17
> <118>Created wlan(4) interfaces: wlan0.
> <118>Created clone interfaces: lagg0.
> <5>bge0: link state changed to DOWN
> iwn0: iwn_read_firmware: ucode rev=0x12a80601
> <118>Starting wpa_supplicant.
> <5>lagg0: link state changed to DOWN
> iwn0: iwn_read_firmware: ucode rev=0x12a80601
> <118>Starting dhclient.
> <118>lagg0: no link ...
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address   = 0x4
> fault code              = supervisor read data, page not present
> instruction pointer     = 0x20:0xffffffff8155cd59
> stack pointer           = 0x28:0xfffffe01491e4790
> frame pointer           = 0x28:0xfffffe01491e4830
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 12 (irq265: iwn0)
> trap number             = 12
> panic: page fault
> cpuid = 0
> time = 1507858438
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
> 0xfffffe01491e4370
> vpanic() at vpanic+0x19c/frame 0xfffffe01491e43f0
> panic() at panic+0x43/frame 0xfffffe01491e4450
> trap_fatal() at trap_fatal+0x34d/frame 0xfffffe01491e44a0
> trap_pfault() at trap_pfault+0x49/frame 0xfffffe01491e4500
> trap() at trap+0x2a9/frame 0xfffffe01491e46c0
> calltrap() at calltrap+0x8/frame 0xfffffe01491e46c0
> --- trap 0xc, rip = 0xffffffff8155cd59, rsp = 0xfffffe01491e4790, rbp =
> 0xfffffe01491e4830 ---
> sta_input() at sta_input+0xb89/frame 0xfffffe01491e4830
> iwn_notif_intr() at iwn_notif_intr+0x15f7/frame 0xfffffe01491e4970
> iwn_intr() at iwn_intr+0x5a0/frame 0xfffffe01491e49e0
> intr_event_execute_handlers() at intr_event_execute_handlers+0xec/frame
> 0xfffffe01491e4a20
> ithread_loop() at ithread_loop+0xd6/frame 0xfffffe01491e4a70
> fork_exit() at fork_exit+0x85/frame 0xfffffe01491e4ab0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe01491e4ab0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> Uptime: 29s
> Dumping 704 out of 7978 MB:..3%..12%..21%..32%..41%..53%..62%..71%..82%..91%
>
>
> Loaded symbols for /boot/kernel/nullfs.ko
> #0  doadump (textdump=1) at pcpu.h:232
> 232     pcpu.h: No such file or directory.
>         in pcpu.h
> (kgdb) bt
> #0  doadump (textdump=1) at pcpu.h:232
> #1  0xffffffff80583eb6 in kern_reboot (howto=260) at
> /opt/src/svn-current/sys/kern/kern_shutdown.c:386
> #2  0xffffffff805843a6 in vpanic (fmt=<value optimized out>, ap=<value
> optimized out>) at /opt/src/svn-current/sys/kern/kern_shutdown.c:779
> #3  0xffffffff805841c3 in panic (fmt=<value optimized out>) at
> /opt/src/svn-current/sys/kern/kern_shutdown.c:710
> #4  0xffffffff80886a8d in trap_fatal (frame=0xfffffe01491e46d0, eva=4) at
> /opt/src/svn-current/sys/amd64/amd64/trap.c:799
> #5  0xffffffff80886ae9 in trap_pfault (frame=0xfffffe01491e46d0,
> usermode=0) at pcpu.h:232
> #6  0xffffffff80886339 in trap (frame=0xfffffe01491e46d0) at
> /opt/src/svn-current/sys/amd64/amd64/trap.c:420
> #7  0xffffffff8086acf1 in calltrap () at /opt/src/svn-current/sys/amd64/amd6
> 4/exception.S:237
> #8  0xffffffff8155cd59 in sta_input (ni=0xfffffe0012651000,
> m=0xfffff80004040e00, rxs=0x0, rssi=63, nf=-95) at ieee80211_input.h:280
> #9  0xffffffff81513987 in iwn_notif_intr () from /boot/kernel/if_iwn.ko
> #10 0xffffffff8150a270 in iwn_intr () from /boot/kernel/if_iwn.ko
> #11 0xffffffff80548dcc in intr_event_execute_handlers (p=<value optimized
> out>, ie=0xfffff80002b06800) at /opt/src/svn-current/sys/kern/kern_intr.c:13
> 36
> #12 0xffffffff80549496 in ithread_loop (arg=0xfffff80002b50c20) at
> /opt/src/svn-current/sys/kern/kern_intr.c:1349
> #13 0xffffffff80546135 in fork_exit (callout=0xffffffff805493c0
> <ithread_loop>, arg=0xfffff80002b50c20, frame=0xfffffe01491e4ac0) at
> /opt/src/svn-current/sys/kern/kern_fork.c:1044
> #14 0xffffffff8086b2de in fork_trampoline () at /opt/src/svn-current/sys/amd
> 64/amd64/exception.S:651
> #15 0x0000000000000000 in ?? ()
> Current language:  auto; currently minimal
>
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert at cschubert.com>
> FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  http://www.FreeBSD.org
>
>         The need of the many outweighs the greed of the few.
>
>
>
>
>


More information about the svn-src-head mailing list