Thread (19 messages) 19 messages, 4 authors, 2018-08-07

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

From: Eric Dumazet <hidden>
Date: 2018-08-02 15:07:16
Also in: lkml


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()
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help