Преглед изворни кода

media-radio-miropcm20-rds: BKL pushdown

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Arnd Bergmann пре 17 година
родитељ
комит
cad8423805
1 измењених фајлова са 4 додато и 0 уклоњено
  1. 4 0
      drivers/media/radio/miropcm20-rds.c

+ 4 - 0
drivers/media/radio/miropcm20-rds.c

@@ -12,6 +12,7 @@
 #include <linux/module.h>
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/smp_lock.h>
 #include <linux/fs.h>
 #include <linux/fs.h>
 #include <linux/miscdevice.h>
 #include <linux/miscdevice.h>
 #include <linux/delay.h>
 #include <linux/delay.h>
@@ -27,13 +28,16 @@ static int rds_f_open(struct inode *in, struct file *fi)
 	if (rds_users)
 	if (rds_users)
 		return -EBUSY;
 		return -EBUSY;
 
 
+	lock_kernel();
 	rds_users++;
 	rds_users++;
 	if ((text_buffer=kmalloc(66, GFP_KERNEL)) == 0) {
 	if ((text_buffer=kmalloc(66, GFP_KERNEL)) == 0) {
 		rds_users--;
 		rds_users--;
 		printk(KERN_NOTICE "aci-rds: Out of memory by open()...\n");
 		printk(KERN_NOTICE "aci-rds: Out of memory by open()...\n");
+		unlock_kernel();
 		return -ENOMEM;
 		return -ENOMEM;
 	}
 	}
 
 
+	unlock_kernel();
 	return 0;
 	return 0;
 }
 }