diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-21 10:56:57 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-21 10:56:57 -0200 |
commit | 8584f88c860ac958d86d9f714ff355768b1665af (patch) | |
tree | 1e94d65c45426a5e6acc1f9ba6a842bc6b8b2d5a /linux/drivers/media/video/cx18/cx18-driver.c | |
parent | 97d64ef8425ad2941d697e352858021b9ed0b2c6 (diff) | |
parent | 9ff1adde48c80361824a2cd7117a796566ef1568 (diff) | |
download | mediapointer-dvb-s2-8584f88c860ac958d86d9f714ff355768b1665af.tar.gz mediapointer-dvb-s2-8584f88c860ac958d86d9f714ff355768b1665af.tar.bz2 |
merge: http://www.linuxtv.org/hg/~stoth/v4l-dvb
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media/video/cx18/cx18-driver.c')
-rw-r--r-- | linux/drivers/media/video/cx18/cx18-driver.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/linux/drivers/media/video/cx18/cx18-driver.c b/linux/drivers/media/video/cx18/cx18-driver.c index 085121c2b..7a1a7830a 100644 --- a/linux/drivers/media/video/cx18/cx18-driver.c +++ b/linux/drivers/media/video/cx18/cx18-driver.c @@ -613,6 +613,7 @@ static int __devinit cx18_probe(struct pci_dev *dev, const struct pci_device_id *pci_id) { int retval = 0; + int i; int vbi_buf_size; u32 devtype; struct cx18 *cx; @@ -698,7 +699,8 @@ static int __devinit cx18_probe(struct pci_dev *dev, /* active i2c */ CX18_DEBUG_INFO("activating i2c...\n"); - if (init_cx18_i2c(cx)) { + retval = init_cx18_i2c(cx); + if (retval) { CX18_ERR("Could not initialize i2c\n"); goto free_map; } @@ -836,8 +838,11 @@ err: CX18_ERR("Error %d on initialization\n", retval); cx18_log_statistics(cx); - kfree(cx18_cards[cx18_cards_active]); - cx18_cards[cx18_cards_active] = NULL; + i = cx->num; + spin_lock(&cx18_cards_lock); + kfree(cx18_cards[i]); + cx18_cards[i] = NULL; + spin_unlock(&cx18_cards_lock); return retval; } |