![]() | |||||||||||
Messages in this thread Patch in this message |
On Thu, 9 Nov 2006 22:05:15 -0800 Andrew Morton <akpm@osdl.org> wrote: > Yup, trivial to reproduce: modprobe snd_serial_u16550 -> splat. > > Bisection indicates that this oops is triggered by > gregkh-driver-sound-device.patch. > > snd_serial_probe() never got to call snd_card_register(), so card->dev is > NULL. > > snd_serial_probe() calls snd_card_free(card) on the error path and > snd_card_do_free() does device_del(card->dev) which oopses over the null > pointer it got. I suppose doing this is legit: diff -puN sound/core/init.c~fix-gregkh-driver-sound-device sound/core/init.c --- a/sound/core/init.c~fix-gregkh-driver-sound-device +++ a/sound/core/init.c @@ -361,7 +361,8 @@ static int snd_card_do_free(struct snd_c snd_printk(KERN_WARNING "unable to free card info\n"); /* Not fatal error */ } - device_unregister(card->dev); + if (card->dev) + device_unregister(card->dev); kfree(card); return 0; } _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2006-11-10 07:31 [from the cache] ©2003-2008 | |||||||||||