svn commit: r324570 - head/sys/net80211
Cy Schubert
Cy.Schubert at komquats.com
Fri Oct 13 01:53:47 UTC 2017
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-all
mailing list