From: Andrew Morton 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. Cc: Greg KH Cc: Kay Sievers Cc: Jaroslav Kysela Cc: Takashi Iwai Signed-off-by: Andrew Morton --- sound/core/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } _