Re: AW: AW: PROBLEM: Kernel Oops in UDP stack
From: Eric Dumazet <hidden>
Date: 2018-08-02 15:07:16
Also in:
netdev
On 08/02/2018 06:57 AM, Marcel Hellwig wrote:
quoted
quoted
There are actually 2 faults, difficult to quickly sort out the merged tracebacks. You are also running a rather old kernel: Linux version 3.4.113. It may well be that whichever ethernet driver generated the misaligned frame has since been fixed.A misalign frame driver problem would have faulted earlier in IP stack, much before we perform the copy to user space in udp_recvmsg()JFYI: we are talking about the lpc_eth driver[0] #57c10b6 , which is not the newest, but all newer did not fix a major problem (at least the commit messages are not screaming: WARNING, UNALIGNED MEMORY!). Is there a diagram/document how a ip packet travels down the code? From the MAC/phy driver to udp_recvmsg? It's not that obvious for me, but maybe it is something I can work with. [0]: https://elixir.bootlin.com/linux/v3.4.113/source/drivers/net/ethernet/nxp/lpc_eth.c Regards, Marcel
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()