Bug in drivers/net/ethernet/freescale/fec_main.c, TX is broken. In 4.0.0-rc3

fugang.duan at freescale.com fugang.duan at freescale.com
Mon Mar 16 02:21:38 PDT 2015


From: Панов Андрей <rockford at yandex.ru> Sent: Wednesday, March 11, 2015 4:12 AM
> To: Duan Fugang-B38611; netdev at vger.kernel.org; linux-arm-kernel
> Subject: Re: Bug in drivers/net/ethernet/freescale/fec_main.c, TX is
> broken. In 4.0.0-rc3
> 
> Hello!
> Adding lakml to cc:
> 
> > Commit 2b995f63987013bacde99168218f9c7b252bdcf1 in 4.0.0-rc3 introduces
> a nasty bug in transmit, corrupting packets.
> >
> > To reproduce:
> >
> > $ dd if=/dev/zero of=zeros bs=1M count=20 $ md5sum -b zeros
> > 8f4e33f3dc3e414ff94e5fb6905cba8c *zeros
> >
> > This checksum is correct.
> >
> > Copy file "zeros" to another host with NFS, and it gets corrupted,
> checksum is changed.
> > File should be big, small amounts of transmit isn't affected.
> >
> > I use an i.MX6 Quad board.
> >
> > If this commit is reverted, all works fine.
> 
> 3.19 works fine too.
> And it is not random corruption, when copying all-zero file this is
> received on NFS host:
> $ hd zeros | head -16
> 00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
> |................|
> *
> 0052c0f0  00 00 00 00 00 00 00 00  1c f0 9f e5 1c f0 9f e5
> |................|
> 0052c100  1c f0 9f e5 1c f0 9f e5  1c f0 9f e5 1c f0 9f e5
> |................|
> 0052c110  1c f0 9f e5 1c f0 9f e5  1c f0 9f e5 74 fb 00 00
> |............t...|
> 0052c120  bc ff 93 00 c0 ff 93 00  c4 ff 93 00 c8 ff 93 00
> |................|
> 0052c130  cc ff 93 00 d0 ff 93 00  d4 ff 93 00 d8 ff 93 00
> |................|
> 0052c140  13 00 00 00 28 63 29 20  43 6f 70 79 72 69 67 68  |....(c)
> Copyrigh|
> 0052c150  74 20 32 30 30 37 2d 32  30 31 32 2c 20 46 72 65  |t 2007-2012,
> Fre|
> 0052c160  65 73 63 61 6c 65 20 53  65 6d 69 63 6f 6e 64 75  |escale
> Semicondu|
> 0052c170  63 74 6f 72 2e 20 41 6c  6c 20 72 69 67 68 74 73  |ctor. All
> rights|
> 0052c180  20 72 65 73 65 72 76 65  64 2e 00 00 dd 00 2c 41  |
> reserved.....,A|
> 0052c190  11 73 00 00 d3 74 00 00  3d 75 00 00 a9 78 00 00
> |.s...t..=u...x..|
> 0052c1a0  4f 78 00 00 75 77 00 00  07 76 00 00 c3 79 00 00
> |Ox..uw...v...y..|
> 0052c1b0  09 7a 00 00 75 7a 00 00  97 22 00 00 49 1f 00 00
> |.z..uz..."..I...|
> 0052c1c0  b9 21 00 00 ff 70 00 00  90 21 90 00 23 4a 52 f8
> |.!...p...!..#JR.|
> 
> Looks like zero page with vectors at beginning.
> Freescale i.MX6 Quad-based Embedsky E9 board.
> 
Hi, 

I try your case on i.MX6q sabresd board with net tree kernel.
root at freescale ~$ uname -r
4.0.0-rc3-11071-gf00bbd2

With below test steps for 10 time, the zero file size range from 20M to 300M bytes, 
compare the md5sum checksum between i.MX6q and i.MX6q/PC host,  the checksum is the same.

root at freescale ~$ rm zeros
root at freescale ~$ dd if=/dev/zero of=zeros bs=1M count=300
300+0 records in
300+0 records out
314572800 bytes (300.0MB) copied, 1.811459 seconds, 165.6MB/s
root at freescale ~$ md5sum -b zeros
0d97a9cd8bbd7ce75a2a76bb06258915  zeros
root at freescale ~$ cp zeros /mnt/nfs/ -f
root at freescale ~$ rm zeros
root at freescale ~$ cp /mnt/nfs/zeros ./
root at freescale ~$ md5sum -b zeros
0d97a9cd8bbd7ce75a2a76bb06258915  zeros

Do you have any lost for reproduce the issue ?


Regards,
Andy



More information about the linux-arm-kernel mailing list