Messages in this thread | | | Subject | Re: [PATCH] net: sk == 0xffffffff fix - not for commit | From | Eric Dumazet <> | Date | Tue, 10 Dec 2013 06:25:57 -0800 |
| |
On Tue, 2013-12-10 at 07:55 +0100, Andrzej Pietrasiewicz wrote: > W dniu 09.12.2013 16:31, Eric Dumazet pisze: > > On Mon, 2013-12-09 at 12:47 +0100, Andrzej Pietrasiewicz wrote: > >> NOT FOR COMMITTING TO MAINLINE. > >> > >> With g_ether loaded the sk occasionally becomes 0xffffffff. > >> It happens usually after transferring few hundreds of kilobytes to few > >> tens of megabytes. If sk is 0xffffffff then dereferencing it causes > >> kernel panic. > >> > >> This is a *workaround*. I don't know enough net code to understand the core > >> of the problem. However, with this patch applied the problems are gone, > >> or at least pushed farther away. > > > > Is it happening on SMP or UP ? > > UP build, S5PC110
OK
I believe you need additional debugging to track the exact moment 0xffffffff is fed to 'sk'
It looks like a very strange bug, involving a problem in some assembly helper, register save/restore, compiler bug or stack corruption or something.
You should not have more than 150 instructions to decode, including __inet_lookup_established()
Since __inet_lookup_established() dereferences the socket pointer, I do not see why it would crash ~20 instructions _later_
| |