patch-2.4.0-test4 linux/drivers/char/tvmixer.c

Next file: linux/drivers/char/videodev.c
Previous file: linux/drivers/char/tty_io.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test3/linux/drivers/char/tvmixer.c linux/drivers/char/tvmixer.c
@@ -7,6 +7,7 @@
 #include <linux/errno.h>
 #include <linux/malloc.h>
 #include <linux/i2c.h>
+#include <linux/smp_lock.h>
 #include <linux/videodev.h>
 #include <asm/semaphore.h>
 #include <linux/init.h>
@@ -220,13 +221,18 @@
 static int tvmixer_release(struct inode *inode, struct file *file)
 {
         struct TVMIXER *mix = file->private_data;
-	struct i2c_client *client = mix->dev;
+	struct i2c_client *client;
 
-	if (NULL == client)
+	lock_kernel();
+	client = mix->dev;
+	if (NULL == client) {
+		unlock_kernel();
 		return -ENODEV;
+	}
 
 	if (client->adapter->dec_use) 
 		client->adapter->dec_use(client->adapter);
+	unlock_kernel();
         return 0;
 }
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)