Messages in this thread | | | Subject | Re: AW: AW: PROBLEM: Kernel Oops in UDP stack | From | Eric Dumazet <> | Date | Thu, 2 Aug 2018 08:07:11 -0700 |
| |
On 08/02/2018 06:57 AM, Marcel Hellwig wrote: >>> 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()
| |