AW: AW: AW: PROBLEM: Kernel Oops in UDP stack

From: Marcel Hellwig
Date: Fri Aug 03 2018 - 04:24:24 EST


>
>Well, this driver does not use NET_IP_ALIGN reservation, meaning IP header is not 4-byte aligned.
>
>No idea why mis-alignments are okay in IP layer, but not in UDP
>
>You could try to patch it to use netdev_alloc_skb_ip_align() instead of dev_alloc_skb()

Looks very promising! CPU runs for 3 hours and no panic so far. Let's hope it survives the weekend! *fingers crossed*
The strange thing I don't understand is, why does the 3.5.7 kernel does not crash (or 4.17.12, yes I managed to run a recent kernel on our machine! \o/ )? It does not use netdev_alloc_skb_ip_align either[0][1], but one thing, that I noticed it, that there is a difference in /proc/iomem

3.4.113
# cat /proc/iomem
08000000-0801ffff : lpc-eth.0
31060000-31060fff : lpc-eth.0
40088000-4008801f : serial
[...]

3.5.7
# cat /proc/iomem
20084000-20084fff : /ahb/apb/ssp@20084000
2008c000-2008cfff : /ahb/apb/ssp@2008c000
31000000-31000fff : /ahb/dma@31000000
40088000-4008801f : serial
[...]

As you notice lpc-eth.0 (or 31060000.ethernet as it's called nowadays) is not listed, so my guess it is served by DMA?

May that the reason why it does not crash (Notice: 3.5.7 runs via device tree file)?

So just my thought: If I would disable dma (somehow) would the error still occur in today's kernel?


[0]: https://elixir.bootlin.com/linux/v3.5.7/source/drivers/net/ethernet/nxp/lpc_eth.c#L1003
[1]: https://elixir.bootlin.com/linux/v4.17.12/source/drivers/net/ethernet/nxp/lpc_eth.c#L957


Mit freundlichen GrÃÃen / With kind regards

Marcel Hellwig
B. Sc. Informatik
Entwickler

m-u-tÂGmbH
Am Marienhof 2
22880 Wedel
Germany

Phone: +49 4103 9308 - 474
Fax:ÂÂ +49 4103 9308 - 99
mhellwig@xxxxxxxxxxxxx

www.mut-group.com

GeschÃftsfÃhrerÂ(Managing Director): Fabian Peters
Amtsgericht Pinneberg (Commercial Register No.): HRBÂ10304 PI
USt-IdNr. (VAT-No.): DE228275390
WEEE-Reg-Nr.: DE 72271808