diff -r ce8589c52a7f linux/drivers/media/video/cx88/cx88-mpeg.c --- a/linux/drivers/media/video/cx88/cx88-mpeg.c Tue Jan 06 09:33:46 2009 -0200 +++ b/linux/drivers/media/video/cx88/cx88-mpeg.c Tue Jan 06 17:27:03 2009 +0100 @@ -830,6 +830,9 @@ err = cx8802_init_common(dev); if (err != 0) goto fail_free; + /* Maintain a reference so cx88-video can query the 8802 device. */ + core->dvbdev = dev; + INIT_LIST_HEAD(&dev->drvlist); list_add_tail(&dev->devlist,&cx8802_devlist); @@ -851,20 +854,19 @@ __func__); videobuf_dvb_dealloc_frontends(&dev->frontends); err = -ENOMEM; + /* FIXME - need to pull dev off cx8802_devlist*/ goto fail_free; } } } #endif - /* Maintain a reference so cx88-video can query the 8802 device. */ - core->dvbdev = dev; - /* now autoload cx88-dvb or cx88-blackbird */ request_modules(dev); return 0; fail_free: + /* FIXME - shouldn't we pull dev off the cx8802_devlist - oops */ kfree(dev); fail_core: cx88_core_put(core,pci_dev);