On Mon, Jan 28, 2008 at 01:24:34PM +0100, Ingo Molnar wrote:In fact, it is exactly what enabled me to catch this bug. The fact that the kobject_uevent() debugging statment did not print out anything, and oopsed, showed me that this was a simpler problem than I was originally thinking it was. Problem was we were passing in 0x18 for a kobject pointer to the kobject_uevent() function. Even checking for NULL there would not have caught this. I have added a lot more "robustness" checks to the kobject core now, see the lkml messages about the maple bus for examples of where it is catching real problems already. And the kobject debugging code is now "unified", printing out everything in a standard, easy to understand manner. I really don't want to get into adding a "magic value" to a kobject field, and then checking it for every call, that too would have died on this kind of bug, just like the debug printk did :) But if there's anything that you think I can add to make it easier to understand, please let me know. The root problem of this bug was us using a goto to call forward into a major code block within a function. Not just using a goto for error cleanup, like the kernel code "normally" does. Because of that, I totally missed this code path when reading the function many times. It's nasty code complexity for no reason at all that causes more problems than is needed, combined with a total lack of documentation for how this kobject userspace interface is supposed to be used, that needs to be fixed. thanks, greg k-h --
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Matt Mackall | Re: [PATCH] x86: fix unconditional arch/x86/kernel/pcspeaker.c compiling |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Natalie Protasevich | [BUG] New Kernel Bugs |
git: | |
