Messages in this thread | ![/](/images/icornerl.gif) | | Date | Tue, 12 Mar 1996 09:20:05 +0200 | From | Linus Torvalds <> | Subject | Re: Linux-1.3.71.. |
| |
Sidewinder: "Re: Linux-1.3.71.." (Mar 11, 18:27): > > Unfortunately it trashed /tmp's root directory, and the kernel fell over > *again* in get_free_pages on bootup. There is a major bug somewhere in that > function.
Very improbable.
However, the "get_free_pages()" function is one of the most called functions in the kernel, _and_ it is very susceptible to pointer corruption. If some part of the kernel used a pointer that isn't valid any more (for example, a pointer to a memory block that had been free'd earlier), and corrupted the linked list of free pages, you'll see problems in get_free_page().
This also makes that kind of bug very hard to find: by the time you get the kernel Oops the thing that corrupted the list is long gone already.
I'll see if I can make it a bit more resistant to programming errors in the kernel (by moving the free page lists into the "mem_map[]" array, so that the list isn't in the free page itself). That won't make whatever bug go away, but it might make it easier to debug (when the crash hopefully happens in a less critical section).
Linus
| ![\](/images/icornerr.gif) |