> From: [email protected] [mailto:netdev-
> [email protected]] On Behalf Of Pierre-Yves Kerbrat
> Sent: Friday, January 26, 2018 2:24 AM
> To: Kirsher, Jeffrey T <[email protected]>; intel-wired-
> [email protected]
> Cc: [email protected]; Marius Gligor <[email protected]>
> Subject: [PATCH] e1000e: allocate ring descriptors with dma_zalloc_coherent
> 
> Descriptor rings were not initialized at zero when allocated
> When area contained garbage data, it caused skb_over_panic in
> e1000_clean_rx_irq (if data had E1000_RXD_STAT_DD bit set)
> 
> This patch makes use of dma_zalloc_coherent to make sure the
> ring is memset at 0 to prevent the area from containing garbage.
> 
> Following is the signature of the panic:
> [email protected]: skbuff: skb_over_panic: text:80407b20 len:64010 put:64010
> head:ab46d800 data:ab46d842 tail:0xab47d24c end:0xab46df40 dev:eth0
> [email protected]: BUG: failure at net/core/skbuff.c:105/skb_panic()!
> [email protected]: Kernel panic - not syncing: BUG!
> [email protected]:
> [email protected]: Process swapper/0 (pid: 0, threadinfo=81728000,
> task=8173cc00 ,cpu: 0)
> [email protected]: SP = <815a1c0c>
> [email protected]: Stack:      00000001
> [email protected]: b2d89800 815e33ac
> [email protected]: ea73c040 00000001
> [email protected]: 60040003 0000fa0a
> [email protected]: 00000002
> [email protected]:
> [email protected]: 804540c0 815a1c70
> [email protected]: b2744000 602ac070
> [email protected]: 815a1c44 b2d89800
> [email protected]: 8173cc00 815a1c08
> [email protected]:
> [email protected]:     00000006
> [email protected]: 815a1b50 00000000
> [email protected]: 80079434 00000001
> [email protected]: ab46df40 b2744000
> [email protected]: b2d89800
> [email protected]:
> [email protected]: 0000fa0a 8045745c
> [email protected]: 815a1c88 0000fa0a
> [email protected]: 80407b20 b2789f80
> [email protected]: 00000005 80407b20
> [email protected]:
> [email protected]:
> [email protected]: Call Trace:
> [email protected]: [<804540bc>] skb_panic+0xa4/0xa8
> [email protected]: [<80079430>] console_unlock+0x2f8/0x6d0
> [email protected]: [<80457458>] skb_put+0xa0/0xc0
> [email protected]: [<80407b1c>] e1000_clean_rx_irq+0x2dc/0x3e8
> [email protected]: [<80407b1c>] e1000_clean_rx_irq+0x2dc/0x3e8
> [email protected]: [<804079c8>] e1000_clean_rx_irq+0x188/0x3e8
> [email protected]: [<80407b1c>] e1000_clean_rx_irq+0x2dc/0x3e8
> [email protected]: [<80468b48>] __dev_kfree_skb_any+0x88/0xa8
> [email protected]: [<804101ac>] e1000e_poll+0x94/0x288
> [email protected]: [<8046e9d4>] net_rx_action+0x19c/0x4e8
> [email protected]:   ...
> [email protected]: Maximum depth to print reached. Use
> kstack=<maximum_depth_to_print> To specify a custom value (where 0
> means to display the full backtrace)
> [email protected]: ---[ end Kernel panic - not syncing: BUG!
> 
> Signed-off-by: Pierre-Yves Kerbrat <[email protected]>
> Signed-off-by: Marius Gligor <[email protected]>
> ---
>  drivers/net/ethernet/intel/e1000e/netdev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

Tested-by: Aaron Brown <[email protected]>

Reply via email to