From: Steven Toth Date: Sat, 7 Oct 2006 00:29:25 +0000 (-0300) Subject: V4L/DVB (4736): Cx88-blackbird module is rejected during probe. X-Git-Tag: v2.6.20-rc1~145^2~5^2~124 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=019391e426266a346ac2f1b3d3c70c26b482ff31;p=linux-2.6 V4L/DVB (4736): Cx88-blackbird module is rejected during probe. If the last cx88 board probed is not backbird based, and a previous board was, the entire module is unloaded leading to an oops during mpeg_open on the first /dev/videoN device. Signed-off-by: Steven Toth Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c index 3d8e6d74e0..1fe1a833c7 100644 --- a/drivers/media/video/cx88/cx88-mpeg.c +++ b/drivers/media/video/cx88/cx88-mpeg.c @@ -662,7 +662,6 @@ int cx8802_register_driver(struct cx8802_driver *drv) } list_for_each(list,&cx8802_devlist) { - i++; h = list_entry(list, struct cx8802_dev, devlist); printk(KERN_INFO "CORE %s: subsystem: %04x:%04x, board: %s [card=%d]\n", @@ -685,6 +684,7 @@ int cx8802_register_driver(struct cx8802_driver *drv) err = drv->probe(driver); if (err == 0) { + i++; mutex_lock(&drv->core->lock); list_add_tail(&driver->devlist,&h->drvlist.devlist); mutex_unlock(&drv->core->lock); @@ -695,6 +695,8 @@ int cx8802_register_driver(struct cx8802_driver *drv) } if (i == 0) err = -ENODEV; + else + err = 0; return err; }