Messages in this thread | | | From | Marcel Hellwig <> | Subject | AW: AW: AW: PROBLEM: Kernel Oops in UDP stack | Date | Fri, 3 Aug 2018 08:24:16 +0000 |
| |
> >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@mut-group.com
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
| |