[PATCH] cx88-dvb oops fix
Fixup error path, without that one the driver kills the machine by oopsing in the IRQ handler in case the frontend initialization fails. Signed-off-by: Gerd Knorr <kraxel@bytesex.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
f8e08a8466
commit
1622c3fcf4
@@ -243,10 +243,8 @@ static int dvb_register(struct cx8802_dev *dev)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n"
|
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
|
||||||
"%s: you might want to look out for patches here:\n"
|
dev->core->name);
|
||||||
"%s: http://dl.bytesex.org/patches/\n",
|
|
||||||
dev->core->name, dev->core->name, dev->core->name);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (NULL == dev->dvb.frontend) {
|
if (NULL == dev->dvb.frontend) {
|
||||||
@@ -308,9 +306,11 @@ static int __devinit dvb_probe(struct pci_dev *pci_dev,
|
|||||||
dev);
|
dev);
|
||||||
err = dvb_register(dev);
|
err = dvb_register(dev);
|
||||||
if (0 != err)
|
if (0 != err)
|
||||||
goto fail_free;
|
goto fail_fini;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
fail_fini:
|
||||||
|
cx8802_fini_common(dev);
|
||||||
fail_free:
|
fail_free:
|
||||||
kfree(dev);
|
kfree(dev);
|
||||||
fail_core:
|
fail_core:
|
||||||
|
Reference in New Issue
Block a user