On 4/12/21 9:31 AM, Eric Dumazet wrote: > On Mon, Apr 12, 2021 at 6:28 PM Linus Torvalds > <torva...@linux-foundation.org> wrote: >> >> On Sun, Apr 11, 2021 at 10:14 PM Guenter Roeck <li...@roeck-us.net> wrote: >>> >>> Qemu test results: >>> total: 460 pass: 459 fail: 1 >>> Failed tests: >>> sh:rts7751r2dplus_defconfig:ata:net,virtio-net:rootfs >>> >>> The failure bisects to commit 0f6925b3e8da ("virtio_net: Do not pull >>> payload in >>> skb->head"). It is a spurious problem - the test passes roughly every other >>> time. When the failure is seen, udhcpc fails to get an IP address and aborts >>> with SIGTERM. So far I have only seen this with the "sh" architecture. >> >> Hmm. Let's add in some more of the people involved in that commit, and >> also netdev. >> >> Nothing in there looks like it should have any interaction with >> architecture, so that "it happens on sh" sounds odd, but maybe it's >> some particular interaction with the qemu environment. > > Yes, maybe. > > I spent few hours on this, and suspect a buggy memcpy() implementation > on SH, but this was not conclusive. >
I replaced all memcpy() calls in skbuff.h with calls to static inline void __my_memcpy(unsigned char *to, const unsigned char *from, unsigned int len) { while (len--) *to++ = *from++; } That made no difference, so unless you have some other memcpy() in mind that seems to be unlikely. > By pulling one extra byte, the problem goes away. > > Strange thing is that the udhcpc process does not go past sendto(). > I have been trying to debug that one. Unfortunately gdb doesn't work with sh, so I can't use it to debug the problem. I'll spend some more time on this today. Thanks, Guenter