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-head mailing list