diff options
author | Steven Toth <stoth@linuxtv.org> | 2008-10-11 11:25:25 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-17 16:24:32 -0400 |
commit | d782ffa24fc6ce01b3308a0bec5aa5d9d666b568 (patch) | |
tree | bd4b3be3f2756a544eb039e4bc2bf2c6a102e304 /drivers/media/video | |
parent | 63248f2664d89cc22cc5a13ec6c76e92f7d5ca39 (diff) |
V4L/DVB (9230): cx23885: MFE related OOPS fix
Bug: the tree generated an oops when the cx23885 was laoded. This avoids
the oops by ensuring the mutex is correctly initialised before it's used.
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video')
-rw-r--r-- | drivers/media/video/cx23885/cx23885-core.c | 4 | ||||
-rw-r--r-- | drivers/media/video/cx23885/cx23885-dvb.c | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c index beb3e61669a3..7f4b61297175 100644 --- a/drivers/media/video/cx23885/cx23885-core.c +++ b/drivers/media/video/cx23885/cx23885-core.c | |||
@@ -643,6 +643,10 @@ static int cx23885_init_tsport(struct cx23885_dev *dev, struct cx23885_tsport *p | |||
643 | port->mpegq.timeout.data = (unsigned long)port; | 643 | port->mpegq.timeout.data = (unsigned long)port; |
644 | init_timer(&port->mpegq.timeout); | 644 | init_timer(&port->mpegq.timeout); |
645 | 645 | ||
646 | mutex_init(&port->frontends.lock); | ||
647 | INIT_LIST_HEAD(&port->frontends.frontend.felist); | ||
648 | port->frontends.active_fe_id = 0; | ||
649 | |||
646 | switch(portno) { | 650 | switch(portno) { |
647 | case 1: | 651 | case 1: |
648 | port->reg_gpcnt = VID_B_GPCNT; | 652 | port->reg_gpcnt = VID_B_GPCNT; |
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c index 78851526db68..d779b8dd180a 100644 --- a/drivers/media/video/cx23885/cx23885-dvb.c +++ b/drivers/media/video/cx23885/cx23885-dvb.c | |||
@@ -314,11 +314,6 @@ static int dvb_register(struct cx23885_tsport *port) | |||
314 | struct cx23885_i2c *i2c_bus = NULL; | 314 | struct cx23885_i2c *i2c_bus = NULL; |
315 | struct videobuf_dvb_frontend *fe0; | 315 | struct videobuf_dvb_frontend *fe0; |
316 | 316 | ||
317 | /* FIXME: add support for multi-frontend */ | ||
318 | mutex_init(&port->frontends.lock); | ||
319 | INIT_LIST_HEAD(&port->frontends.frontend.felist); | ||
320 | port->frontends.active_fe_id = 0; | ||
321 | |||
322 | printk(KERN_INFO "%s() allocating 1 frontend\n", __func__); | 317 | printk(KERN_INFO "%s() allocating 1 frontend\n", __func__); |
323 | 318 | ||
324 | if (videobuf_dvb_alloc_frontend(dev, &port->frontends, 1) == NULL) { | 319 | if (videobuf_dvb_alloc_frontend(dev, &port->frontends, 1) == NULL) { |