diff options
| -rw-r--r-- | arch/cris/arch-v10/drivers/eeprom.c | 4 | ||||
| -rw-r--r-- | arch/cris/arch-v10/drivers/i2c.c | 2 | ||||
| -rw-r--r-- | arch/cris/arch-v32/drivers/cryptocop.c | 3 | ||||
| -rw-r--r-- | arch/cris/arch-v32/drivers/i2c.c | 2 | ||||
| -rw-r--r-- | drivers/char/cs5535_gpio.c | 4 | ||||
| -rw-r--r-- | drivers/char/dtlk.c | 5 | ||||
| -rw-r--r-- | drivers/char/ip2/ip2main.c | 34 | ||||
| -rw-r--r-- | drivers/char/pc8736x_gpio.c | 3 | ||||
| -rw-r--r-- | drivers/char/ppdev.c | 3 | ||||
| -rw-r--r-- | drivers/char/scx200_gpio.c | 3 | ||||
| -rw-r--r-- | drivers/char/tb0219.c | 3 | ||||
| -rw-r--r-- | drivers/char/vr41xx_giu.c | 4 | ||||
| -rw-r--r-- | drivers/infiniband/core/ucm.c | 3 | ||||
| -rw-r--r-- | drivers/infiniband/hw/ipath/ipath_file_ops.c | 3 | ||||
| -rw-r--r-- | drivers/isdn/hardware/eicon/divasi.c | 2 | ||||
| -rw-r--r-- | drivers/isdn/hardware/eicon/divasmain.c | 2 | ||||
| -rw-r--r-- | drivers/net/ppp_generic.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/3w-9xxx.c | 5 | ||||
| -rw-r--r-- | drivers/scsi/3w-xxxx.c | 5 | ||||
| -rw-r--r-- | drivers/scsi/megaraid.c | 4 | ||||
| -rw-r--r-- | drivers/scsi/megaraid/megaraid_sas.c | 3 |
21 files changed, 45 insertions, 55 deletions
diff --git a/arch/cris/arch-v10/drivers/eeprom.c b/arch/cris/arch-v10/drivers/eeprom.c index 40c6fe4c06f4..1f2ae909d3e6 100644 --- a/arch/cris/arch-v10/drivers/eeprom.c +++ b/arch/cris/arch-v10/drivers/eeprom.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
| 29 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
| 30 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
| 31 | #include <linux/smp_lock.h> | ||
| 31 | #include <linux/wait.h> | 32 | #include <linux/wait.h> |
| 32 | #include <asm/uaccess.h> | 33 | #include <asm/uaccess.h> |
| 33 | #include "i2c.h" | 34 | #include "i2c.h" |
| @@ -375,10 +376,9 @@ int __init eeprom_init(void) | |||
| 375 | } | 376 | } |
| 376 | 377 | ||
| 377 | /* Opens the device. */ | 378 | /* Opens the device. */ |
| 378 | /* BKL not needed: no global resources accessed */ | ||
| 379 | static int eeprom_open(struct inode * inode, struct file * file) | 379 | static int eeprom_open(struct inode * inode, struct file * file) |
| 380 | { | 380 | { |
| 381 | 381 | cycle_kernel_lock(); | |
| 382 | if(iminor(inode) != EEPROM_MINOR_NR) | 382 | if(iminor(inode) != EEPROM_MINOR_NR) |
| 383 | return -ENXIO; | 383 | return -ENXIO; |
| 384 | if(imajor(inode) != EEPROM_MAJOR_NR) | 384 | if(imajor(inode) != EEPROM_MAJOR_NR) |
diff --git a/arch/cris/arch-v10/drivers/i2c.c b/arch/cris/arch-v10/drivers/i2c.c index d6d22067d0c8..2797e67ce4f4 100644 --- a/arch/cris/arch-v10/drivers/i2c.c +++ b/arch/cris/arch-v10/drivers/i2c.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
| 16 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
| 17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
| 18 | #include <linux/smp_lock.h> | ||
| 18 | #include <linux/errno.h> | 19 | #include <linux/errno.h> |
| 19 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
| 20 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
| @@ -566,6 +567,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg) | |||
| 566 | static int | 567 | static int |
| 567 | i2c_open(struct inode *inode, struct file *filp) | 568 | i2c_open(struct inode *inode, struct file *filp) |
| 568 | { | 569 | { |
| 570 | cycle_kernel_lock(); | ||
| 569 | return 0; | 571 | return 0; |
| 570 | } | 572 | } |
| 571 | 573 | ||
diff --git a/arch/cris/arch-v32/drivers/cryptocop.c b/arch/cris/arch-v32/drivers/cryptocop.c index c17204289575..67c61ea86813 100644 --- a/arch/cris/arch-v32/drivers/cryptocop.c +++ b/arch/cris/arch-v32/drivers/cryptocop.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/string.h> | 11 | #include <linux/string.h> |
| 12 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
| 13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
| 14 | #include <linux/smp_lock.h> | ||
| 14 | #include <linux/spinlock.h> | 15 | #include <linux/spinlock.h> |
| 15 | #include <linux/stddef.h> | 16 | #include <linux/stddef.h> |
| 16 | 17 | ||
| @@ -2302,11 +2303,11 @@ static int cryptocop_job_setup(struct cryptocop_prio_job **pj, struct cryptocop_ | |||
| 2302 | return 0; | 2303 | return 0; |
| 2303 | } | 2304 | } |
| 2304 | 2305 | ||
| 2305 | /* No BKL needed here - no global resources accessed */ | ||
| 2306 | static int cryptocop_open(struct inode *inode, struct file *filp) | 2306 | static int cryptocop_open(struct inode *inode, struct file *filp) |
| 2307 | { | 2307 | { |
| 2308 | int p = iminor(inode); | 2308 | int p = iminor(inode); |
| 2309 | 2309 | ||
| 2310 | cycle_kernel_lock(); | ||
| 2310 | if (p != CRYPTOCOP_MINOR) return -EINVAL; | 2311 | if (p != CRYPTOCOP_MINOR) return -EINVAL; |
| 2311 | 2312 | ||
| 2312 | filp->private_data = NULL; | 2313 | filp->private_data = NULL; |
diff --git a/arch/cris/arch-v32/drivers/i2c.c b/arch/cris/arch-v32/drivers/i2c.c index c2fb7a5c1396..179e7b804331 100644 --- a/arch/cris/arch-v32/drivers/i2c.c +++ b/arch/cris/arch-v32/drivers/i2c.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/fs.h> | 33 | #include <linux/fs.h> |
| 34 | #include <linux/string.h> | 34 | #include <linux/string.h> |
| 35 | #include <linux/init.h> | 35 | #include <linux/init.h> |
| 36 | #include <linux/smp_lock.h> | ||
| 36 | 37 | ||
| 37 | #include <asm/etraxi2c.h> | 38 | #include <asm/etraxi2c.h> |
| 38 | 39 | ||
| @@ -636,6 +637,7 @@ i2c_readreg(unsigned char theSlave, unsigned char theReg) | |||
| 636 | static int | 637 | static int |
| 637 | i2c_open(struct inode *inode, struct file *filp) | 638 | i2c_open(struct inode *inode, struct file *filp) |
| 638 | { | 639 | { |
| 640 | cycle_kernel_lock(); | ||
| 639 | return 0; | 641 | return 0; |
| 640 | } | 642 | } |
| 641 | 643 | ||
diff --git a/drivers/char/cs5535_gpio.c b/drivers/char/cs5535_gpio.c index 628e3d3249d2..04ba906b4880 100644 --- a/drivers/char/cs5535_gpio.c +++ b/drivers/char/cs5535_gpio.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/cdev.h> | 17 | #include <linux/cdev.h> |
| 18 | #include <linux/ioport.h> | 18 | #include <linux/ioport.h> |
| 19 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
| 20 | #include <linux/smp_lock.h> | ||
| 20 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
| 21 | #include <asm/io.h> | 22 | #include <asm/io.h> |
| 22 | 23 | ||
| @@ -153,12 +154,11 @@ static ssize_t cs5535_gpio_read(struct file *file, char __user *buf, | |||
| 153 | return count; | 154 | return count; |
| 154 | } | 155 | } |
| 155 | 156 | ||
| 156 | /* No BKL needed here - "mask" is the only global resource used | ||
| 157 | here and it's a boot-time parameter */ | ||
| 158 | static int cs5535_gpio_open(struct inode *inode, struct file *file) | 157 | static int cs5535_gpio_open(struct inode *inode, struct file *file) |
| 159 | { | 158 | { |
| 160 | u32 m = iminor(inode); | 159 | u32 m = iminor(inode); |
| 161 | 160 | ||
| 161 | cycle_kernel_lock(); | ||
| 162 | /* the mask says which pins are usable by this driver */ | 162 | /* the mask says which pins are usable by this driver */ |
| 163 | if ((mask & (1 << m)) == 0) | 163 | if ((mask & (1 << m)) == 0) |
| 164 | return -EINVAL; | 164 | return -EINVAL; |
diff --git a/drivers/char/dtlk.c b/drivers/char/dtlk.c index 433388c60235..6b900b297cc6 100644 --- a/drivers/char/dtlk.c +++ b/drivers/char/dtlk.c | |||
| @@ -56,6 +56,7 @@ | |||
| 56 | #include <linux/errno.h> /* for -EBUSY */ | 56 | #include <linux/errno.h> /* for -EBUSY */ |
| 57 | #include <linux/ioport.h> /* for request_region */ | 57 | #include <linux/ioport.h> /* for request_region */ |
| 58 | #include <linux/delay.h> /* for loops_per_jiffy */ | 58 | #include <linux/delay.h> /* for loops_per_jiffy */ |
| 59 | #include <linux/smp_lock.h> /* cycle_kernel_lock() */ | ||
| 59 | #include <asm/io.h> /* for inb_p, outb_p, inb, outb, etc. */ | 60 | #include <asm/io.h> /* for inb_p, outb_p, inb, outb, etc. */ |
| 60 | #include <asm/uaccess.h> /* for get_user, etc. */ | 61 | #include <asm/uaccess.h> /* for get_user, etc. */ |
| 61 | #include <linux/wait.h> /* for wait_queue */ | 62 | #include <linux/wait.h> /* for wait_queue */ |
| @@ -288,12 +289,12 @@ static int dtlk_ioctl(struct inode *inode, | |||
| 288 | } | 289 | } |
| 289 | } | 290 | } |
| 290 | 291 | ||
| 291 | /* No BKL needed here; "dtlk_busy" is the only global resource, | 292 | /* Note that nobody ever sets dtlk_busy... */ |
| 292 | and it is not ever set by anybody (test is broken) */ | ||
| 293 | static int dtlk_open(struct inode *inode, struct file *file) | 293 | static int dtlk_open(struct inode *inode, struct file *file) |
| 294 | { | 294 | { |
| 295 | TRACE_TEXT("(dtlk_open"); | 295 | TRACE_TEXT("(dtlk_open"); |
| 296 | 296 | ||
| 297 | cycle_kernel_lock(); | ||
| 297 | nonseekable_open(inode, file); | 298 | nonseekable_open(inode, file); |
| 298 | switch (iminor(inode)) { | 299 | switch (iminor(inode)) { |
| 299 | case DTLK_MINOR: | 300 | case DTLK_MINOR: |
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c index 70957acaa960..a978c57b6b2b 100644 --- a/drivers/char/ip2/ip2main.c +++ b/drivers/char/ip2/ip2main.c | |||
| @@ -98,6 +98,7 @@ | |||
| 98 | #include <linux/major.h> | 98 | #include <linux/major.h> |
| 99 | #include <linux/wait.h> | 99 | #include <linux/wait.h> |
| 100 | #include <linux/device.h> | 100 | #include <linux/device.h> |
| 101 | #include <linux/smp_lock.h> | ||
| 101 | 102 | ||
| 102 | #include <linux/tty.h> | 103 | #include <linux/tty.h> |
| 103 | #include <linux/tty_flip.h> | 104 | #include <linux/tty_flip.h> |
| @@ -2931,42 +2932,11 @@ ip2_ipl_ioctl ( struct inode *pInode, struct file *pFile, UINT cmd, ULONG arg ) | |||
| 2931 | static int | 2932 | static int |
| 2932 | ip2_ipl_open( struct inode *pInode, struct file *pFile ) | 2933 | ip2_ipl_open( struct inode *pInode, struct file *pFile ) |
| 2933 | { | 2934 | { |
| 2934 | unsigned int iplminor = iminor(pInode); | ||
| 2935 | i2eBordStrPtr pB; | ||
| 2936 | i2ChanStrPtr pCh; | ||
| 2937 | 2935 | ||
| 2938 | #ifdef IP2DEBUG_IPL | 2936 | #ifdef IP2DEBUG_IPL |
| 2939 | printk (KERN_DEBUG "IP2IPL: open\n" ); | 2937 | printk (KERN_DEBUG "IP2IPL: open\n" ); |
| 2940 | #endif | 2938 | #endif |
| 2941 | 2939 | cycle_kernel_lock(); | |
| 2942 | switch(iplminor) { | ||
| 2943 | // These are the IPL devices | ||
| 2944 | case 0: | ||
| 2945 | case 4: | ||
| 2946 | case 8: | ||
| 2947 | case 12: | ||
| 2948 | break; | ||
| 2949 | |||
| 2950 | // These are the status devices | ||
| 2951 | case 1: | ||
| 2952 | case 5: | ||
| 2953 | case 9: | ||
| 2954 | case 13: | ||
| 2955 | break; | ||
| 2956 | |||
| 2957 | // These are the debug devices | ||
| 2958 | case 2: | ||
| 2959 | case 6: | ||
| 2960 | case 10: | ||
| 2961 | case 14: | ||
| 2962 | pB = i2BoardPtrTable[iplminor / 4]; | ||
| 2963 | pCh = (i2ChanStrPtr) pB->i2eChannelPtr; | ||
| 2964 | break; | ||
| 2965 | |||
| 2966 | // This is the trace device | ||
| 2967 | case 3: | ||
| 2968 | break; | ||
| 2969 | } | ||
| 2970 | return 0; | 2940 | return 0; |
| 2971 | } | 2941 | } |
| 2972 | 2942 | ||
diff --git a/drivers/char/pc8736x_gpio.c b/drivers/char/pc8736x_gpio.c index 8715dc9f4a53..b930de50407a 100644 --- a/drivers/char/pc8736x_gpio.c +++ b/drivers/char/pc8736x_gpio.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/mutex.h> | 20 | #include <linux/mutex.h> |
| 21 | #include <linux/nsc_gpio.h> | 21 | #include <linux/nsc_gpio.h> |
| 22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
| 23 | #include <linux/smp_lock.h> | ||
| 23 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
| 24 | 25 | ||
| 25 | #define DEVNAME "pc8736x_gpio" | 26 | #define DEVNAME "pc8736x_gpio" |
| @@ -212,12 +213,12 @@ static struct nsc_gpio_ops pc8736x_gpio_ops = { | |||
| 212 | .gpio_current = pc8736x_gpio_current | 213 | .gpio_current = pc8736x_gpio_current |
| 213 | }; | 214 | }; |
| 214 | 215 | ||
| 215 | /* No BKL needed here; no global resources accessed */ | ||
| 216 | static int pc8736x_gpio_open(struct inode *inode, struct file *file) | 216 | static int pc8736x_gpio_open(struct inode *inode, struct file *file) |
| 217 | { | 217 | { |
| 218 | unsigned m = iminor(inode); | 218 | unsigned m = iminor(inode); |
| 219 | file->private_data = &pc8736x_gpio_ops; | 219 | file->private_data = &pc8736x_gpio_ops; |
| 220 | 220 | ||
| 221 | cycle_kernel_lock(); | ||
| 221 | dev_dbg(&pdev->dev, "open %d\n", m); | 222 | dev_dbg(&pdev->dev, "open %d\n", m); |
| 222 | 223 | ||
| 223 | if (m >= PC8736X_GPIO_CT) | 224 | if (m >= PC8736X_GPIO_CT) |
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index ce1987574888..f6e6acadd9a0 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c | |||
| @@ -66,6 +66,7 @@ | |||
| 66 | #include <linux/poll.h> | 66 | #include <linux/poll.h> |
| 67 | #include <linux/major.h> | 67 | #include <linux/major.h> |
| 68 | #include <linux/ppdev.h> | 68 | #include <linux/ppdev.h> |
| 69 | #include <linux/smp_lock.h> | ||
| 69 | #include <asm/uaccess.h> | 70 | #include <asm/uaccess.h> |
| 70 | 71 | ||
| 71 | #define PP_VERSION "ppdev: user-space parallel port driver" | 72 | #define PP_VERSION "ppdev: user-space parallel port driver" |
| @@ -633,12 +634,12 @@ static int pp_ioctl(struct inode *inode, struct file *file, | |||
| 633 | return 0; | 634 | return 0; |
| 634 | } | 635 | } |
| 635 | 636 | ||
| 636 | /* No BKL needed here: only local resources used */ | ||
| 637 | static int pp_open (struct inode * inode, struct file * file) | 637 | static int pp_open (struct inode * inode, struct file * file) |
| 638 | { | 638 | { |
| 639 | unsigned int minor = iminor(inode); | 639 | unsigned int minor = iminor(inode); |
| 640 | struct pp_struct *pp; | 640 | struct pp_struct *pp; |
| 641 | 641 | ||
| 642 | cycle_kernel_lock(); | ||
| 642 | if (minor >= PARPORT_MAX) | 643 | if (minor >= PARPORT_MAX) |
| 643 | return -ENXIO; | 644 | return -ENXIO; |
| 644 | 645 | ||
diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index be2c623a9862..1d9100561c8a 100644 --- a/drivers/char/scx200_gpio.c +++ b/drivers/char/scx200_gpio.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
| 15 | #include <linux/smp_lock.h> | ||
| 15 | #include <asm/uaccess.h> | 16 | #include <asm/uaccess.h> |
| 16 | #include <asm/io.h> | 17 | #include <asm/io.h> |
| 17 | 18 | ||
| @@ -46,12 +47,12 @@ struct nsc_gpio_ops scx200_gpio_ops = { | |||
| 46 | }; | 47 | }; |
| 47 | EXPORT_SYMBOL_GPL(scx200_gpio_ops); | 48 | EXPORT_SYMBOL_GPL(scx200_gpio_ops); |
| 48 | 49 | ||
| 49 | /* No BKL needed here: no global resources used */ | ||
| 50 | static int scx200_gpio_open(struct inode *inode, struct file *file) | 50 | static int scx200_gpio_open(struct inode *inode, struct file *file) |
| 51 | { | 51 | { |
| 52 | unsigned m = iminor(inode); | 52 | unsigned m = iminor(inode); |
| 53 | file->private_data = &scx200_gpio_ops; | 53 | file->private_data = &scx200_gpio_ops; |
| 54 | 54 | ||
| 55 | cycle_kernel_lock(); | ||
| 55 | if (m >= MAX_PINS) | 56 | if (m >= MAX_PINS) |
| 56 | return -EINVAL; | 57 | return -EINVAL; |
| 57 | return nonseekable_open(inode, file); | 58 | return nonseekable_open(inode, file); |
diff --git a/drivers/char/tb0219.c b/drivers/char/tb0219.c index db8c2ca2ce4c..6062b62800fd 100644 --- a/drivers/char/tb0219.c +++ b/drivers/char/tb0219.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
| 22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
| 23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
| 24 | #include <linux/smp_lock.h> | ||
| 24 | 25 | ||
| 25 | #include <asm/io.h> | 26 | #include <asm/io.h> |
| 26 | #include <asm/reboot.h> | 27 | #include <asm/reboot.h> |
| @@ -232,11 +233,11 @@ static ssize_t tanbac_tb0219_write(struct file *file, const char __user *data, | |||
| 232 | return i; | 233 | return i; |
| 233 | } | 234 | } |
| 234 | 235 | ||
| 235 | /* No BKL needed here; no global resources accessed */ | ||
| 236 | static int tanbac_tb0219_open(struct inode *inode, struct file *file) | 236 | static int tanbac_tb0219_open(struct inode *inode, struct file *file) |
| 237 | { | 237 | { |
| 238 | unsigned int minor; | 238 | unsigned int minor; |
| 239 | 239 | ||
| 240 | cycle_kernel_lock(); | ||
| 240 | minor = iminor(inode); | 241 | minor = iminor(inode); |
| 241 | switch (minor) { | 242 | switch (minor) { |
| 242 | case 0: | 243 | case 0: |
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c index 412937fdb958..ffe9b4e3072e 100644 --- a/drivers/char/vr41xx_giu.c +++ b/drivers/char/vr41xx_giu.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
| 28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
| 29 | #include <linux/platform_device.h> | 29 | #include <linux/platform_device.h> |
| 30 | #include <linux/smp_lock.h> | ||
| 30 | #include <linux/spinlock.h> | 31 | #include <linux/spinlock.h> |
| 31 | #include <linux/types.h> | 32 | #include <linux/types.h> |
| 32 | 33 | ||
| @@ -543,12 +544,11 @@ static ssize_t gpio_write(struct file *file, const char __user *data, | |||
| 543 | return i; | 544 | return i; |
| 544 | } | 545 | } |
| 545 | 546 | ||
| 546 | /* No BKL needed here; only global (giu_nr_pins) is only set | ||
| 547 | at probe time */ | ||
| 548 | static int gpio_open(struct inode *inode, struct file *file) | 547 | static int gpio_open(struct inode *inode, struct file *file) |
| 549 | { | 548 | { |
| 550 | unsigned int pin; | 549 | unsigned int pin; |
| 551 | 550 | ||
| 551 | cycle_kernel_lock(); | ||
| 552 | pin = iminor(inode); | 552 | pin = iminor(inode); |
| 553 | if (pin >= giu_nr_pins) | 553 | if (pin >= giu_nr_pins) |
| 554 | return -EBADF; | 554 | return -EBADF; |
diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c index 3e6a8ff6d76c..b25675faaaf5 100644 --- a/drivers/infiniband/core/ucm.c +++ b/drivers/infiniband/core/ucm.c | |||
| @@ -45,6 +45,7 @@ | |||
| 45 | #include <linux/cdev.h> | 45 | #include <linux/cdev.h> |
| 46 | #include <linux/idr.h> | 46 | #include <linux/idr.h> |
| 47 | #include <linux/mutex.h> | 47 | #include <linux/mutex.h> |
| 48 | #include <linux/smp_lock.h> | ||
| 48 | 49 | ||
| 49 | #include <asm/uaccess.h> | 50 | #include <asm/uaccess.h> |
| 50 | 51 | ||
| @@ -1155,11 +1156,11 @@ static unsigned int ib_ucm_poll(struct file *filp, | |||
| 1155 | return mask; | 1156 | return mask; |
| 1156 | } | 1157 | } |
| 1157 | 1158 | ||
| 1158 | /* No BKL needed here: no global resources used */ | ||
| 1159 | static int ib_ucm_open(struct inode *inode, struct file *filp) | 1159 | static int ib_ucm_open(struct inode *inode, struct file *filp) |
| 1160 | { | 1160 | { |
| 1161 | struct ib_ucm_file *file; | 1161 | struct ib_ucm_file *file; |
| 1162 | 1162 | ||
| 1163 | cycle_kernel_lock(); | ||
| 1163 | file = kmalloc(sizeof(*file), GFP_KERNEL); | 1164 | file = kmalloc(sizeof(*file), GFP_KERNEL); |
| 1164 | if (!file) | 1165 | if (!file) |
| 1165 | return -ENOMEM; | 1166 | return -ENOMEM; |
diff --git a/drivers/infiniband/hw/ipath/ipath_file_ops.c b/drivers/infiniband/hw/ipath/ipath_file_ops.c index e80cfbd4f3fd..35f301c88b57 100644 --- a/drivers/infiniband/hw/ipath/ipath_file_ops.c +++ b/drivers/infiniband/hw/ipath/ipath_file_ops.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #include <linux/highmem.h> | 39 | #include <linux/highmem.h> |
| 40 | #include <linux/io.h> | 40 | #include <linux/io.h> |
| 41 | #include <linux/jiffies.h> | 41 | #include <linux/jiffies.h> |
| 42 | #include <linux/smp_lock.h> | ||
| 42 | #include <asm/pgtable.h> | 43 | #include <asm/pgtable.h> |
| 43 | 44 | ||
| 44 | #include "ipath_kernel.h" | 45 | #include "ipath_kernel.h" |
| @@ -1812,10 +1813,10 @@ done: | |||
| 1812 | return ret; | 1813 | return ret; |
| 1813 | } | 1814 | } |
| 1814 | 1815 | ||
| 1815 | /* No BKL needed here */ | ||
| 1816 | static int ipath_open(struct inode *in, struct file *fp) | 1816 | static int ipath_open(struct inode *in, struct file *fp) |
| 1817 | { | 1817 | { |
| 1818 | /* The real work is performed later in ipath_assign_port() */ | 1818 | /* The real work is performed later in ipath_assign_port() */ |
| 1819 | cycle_kernel_lock(); | ||
| 1819 | fp->private_data = kzalloc(sizeof(struct ipath_filedata), GFP_KERNEL); | 1820 | fp->private_data = kzalloc(sizeof(struct ipath_filedata), GFP_KERNEL); |
| 1820 | return fp->private_data ? 0 : -ENOMEM; | 1821 | return fp->private_data ? 0 : -ENOMEM; |
| 1821 | } | 1822 | } |
diff --git a/drivers/isdn/hardware/eicon/divasi.c b/drivers/isdn/hardware/eicon/divasi.c index 78f141e77466..f4969fe0a055 100644 --- a/drivers/isdn/hardware/eicon/divasi.c +++ b/drivers/isdn/hardware/eicon/divasi.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/poll.h> | 17 | #include <linux/poll.h> |
| 18 | #include <linux/proc_fs.h> | 18 | #include <linux/proc_fs.h> |
| 19 | #include <linux/skbuff.h> | 19 | #include <linux/skbuff.h> |
| 20 | #include <linux/smp_lock.h> | ||
| 20 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
| 21 | 22 | ||
| 22 | #include "platform.h" | 23 | #include "platform.h" |
| @@ -400,6 +401,7 @@ static unsigned int um_idi_poll(struct file *file, poll_table * wait) | |||
| 400 | 401 | ||
| 401 | static int um_idi_open(struct inode *inode, struct file *file) | 402 | static int um_idi_open(struct inode *inode, struct file *file) |
| 402 | { | 403 | { |
| 404 | cycle_kernel_lock(); | ||
| 403 | return (0); | 405 | return (0); |
| 404 | } | 406 | } |
| 405 | 407 | ||
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c index 5fcbdccd7a53..65c95019a9ae 100644 --- a/drivers/isdn/hardware/eicon/divasmain.c +++ b/drivers/isdn/hardware/eicon/divasmain.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
| 22 | #include <linux/poll.h> | 22 | #include <linux/poll.h> |
| 23 | #include <linux/kmod.h> | 23 | #include <linux/kmod.h> |
| 24 | #include <linux/smp_lock.h> | ||
| 24 | 25 | ||
| 25 | #include "platform.h" | 26 | #include "platform.h" |
| 26 | #undef ID_MASK | 27 | #undef ID_MASK |
| @@ -580,6 +581,7 @@ xdi_copy_from_user(void *os_handle, void *dst, const void __user *src, int lengt | |||
| 580 | */ | 581 | */ |
| 581 | static int divas_open(struct inode *inode, struct file *file) | 582 | static int divas_open(struct inode *inode, struct file *file) |
| 582 | { | 583 | { |
| 584 | cycle_kernel_lock(); | ||
| 583 | return (0); | 585 | return (0); |
| 584 | } | 586 | } |
| 585 | 587 | ||
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index dc8505062da7..83625fdff3dd 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c | |||
| @@ -39,6 +39,7 @@ | |||
| 39 | #include <linux/if_arp.h> | 39 | #include <linux/if_arp.h> |
| 40 | #include <linux/ip.h> | 40 | #include <linux/ip.h> |
| 41 | #include <linux/tcp.h> | 41 | #include <linux/tcp.h> |
| 42 | #include <linux/smp_lock.h> | ||
| 42 | #include <linux/spinlock.h> | 43 | #include <linux/spinlock.h> |
| 43 | #include <linux/rwsem.h> | 44 | #include <linux/rwsem.h> |
| 44 | #include <linux/stddef.h> | 45 | #include <linux/stddef.h> |
| @@ -351,9 +352,9 @@ static const int npindex_to_ethertype[NUM_NP] = { | |||
| 351 | * Open instances of /dev/ppp can be in one of three states: | 352 | * Open instances of /dev/ppp can be in one of three states: |
| 352 | * unattached, attached to a ppp unit, or attached to a ppp channel. | 353 | * unattached, attached to a ppp unit, or attached to a ppp channel. |
| 353 | */ | 354 | */ |
| 354 | /* No BKL needed here */ | ||
| 355 | static int ppp_open(struct inode *inode, struct file *file) | 355 | static int ppp_open(struct inode *inode, struct file *file) |
| 356 | { | 356 | { |
| 357 | cycle_kernel_lock(); | ||
| 357 | /* | 358 | /* |
| 358 | * This could (should?) be enforced by the permissions on /dev/ppp. | 359 | * This could (should?) be enforced by the permissions on /dev/ppp. |
| 359 | */ | 360 | */ |
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index 2239d16fb9b5..eaa805df5b00 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | #include <linux/pci.h> | 84 | #include <linux/pci.h> |
| 85 | #include <linux/time.h> | 85 | #include <linux/time.h> |
| 86 | #include <linux/mutex.h> | 86 | #include <linux/mutex.h> |
| 87 | #include <linux/smp_lock.h> | ||
| 87 | #include <asm/io.h> | 88 | #include <asm/io.h> |
| 88 | #include <asm/irq.h> | 89 | #include <asm/irq.h> |
| 89 | #include <asm/uaccess.h> | 90 | #include <asm/uaccess.h> |
| @@ -862,13 +863,13 @@ out: | |||
| 862 | } /* End twa_chrdev_ioctl() */ | 863 | } /* End twa_chrdev_ioctl() */ |
| 863 | 864 | ||
| 864 | /* This function handles open for the character device */ | 865 | /* This function handles open for the character device */ |
| 865 | /* NOTE that this function will race with remove; adding BKL | 866 | /* NOTE that this function will race with remove. */ |
| 866 | will not help. */ | ||
| 867 | static int twa_chrdev_open(struct inode *inode, struct file *file) | 867 | static int twa_chrdev_open(struct inode *inode, struct file *file) |
| 868 | { | 868 | { |
| 869 | unsigned int minor_number; | 869 | unsigned int minor_number; |
| 870 | int retval = TW_IOCTL_ERROR_OS_ENODEV; | 870 | int retval = TW_IOCTL_ERROR_OS_ENODEV; |
| 871 | 871 | ||
| 872 | cycle_kernel_lock(); | ||
| 872 | minor_number = iminor(inode); | 873 | minor_number = iminor(inode); |
| 873 | if (minor_number >= twa_device_extension_count) | 874 | if (minor_number >= twa_device_extension_count) |
| 874 | goto out; | 875 | goto out; |
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index bbff029536ea..a0537f09aa21 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c | |||
| @@ -198,6 +198,7 @@ | |||
| 198 | 198 | ||
| 199 | #include <linux/module.h> | 199 | #include <linux/module.h> |
| 200 | #include <linux/reboot.h> | 200 | #include <linux/reboot.h> |
| 201 | #include <linux/smp_lock.h> | ||
| 201 | #include <linux/spinlock.h> | 202 | #include <linux/spinlock.h> |
| 202 | #include <linux/interrupt.h> | 203 | #include <linux/interrupt.h> |
| 203 | #include <linux/moduleparam.h> | 204 | #include <linux/moduleparam.h> |
| @@ -1027,12 +1028,12 @@ out: | |||
| 1027 | } /* End tw_chrdev_ioctl() */ | 1028 | } /* End tw_chrdev_ioctl() */ |
| 1028 | 1029 | ||
| 1029 | /* This function handles open for the character device */ | 1030 | /* This function handles open for the character device */ |
| 1030 | /* NOTE that this function races with remove - adding BKL | 1031 | /* NOTE that this function races with remove. */ |
| 1031 | won't help */ | ||
| 1032 | static int tw_chrdev_open(struct inode *inode, struct file *file) | 1032 | static int tw_chrdev_open(struct inode *inode, struct file *file) |
| 1033 | { | 1033 | { |
| 1034 | unsigned int minor_number; | 1034 | unsigned int minor_number; |
| 1035 | 1035 | ||
| 1036 | cycle_kernel_lock(); | ||
| 1036 | dprintk(KERN_WARNING "3w-xxxx: tw_ioctl_open()\n"); | 1037 | dprintk(KERN_WARNING "3w-xxxx: tw_ioctl_open()\n"); |
| 1037 | 1038 | ||
| 1038 | minor_number = iminor(inode); | 1039 | minor_number = iminor(inode); |
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index c9aa2c45a699..28c9da7d4a5c 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | #include <linux/pci.h> | 46 | #include <linux/pci.h> |
| 47 | #include <linux/init.h> | 47 | #include <linux/init.h> |
| 48 | #include <linux/dma-mapping.h> | 48 | #include <linux/dma-mapping.h> |
| 49 | #include <linux/smp_lock.h> | ||
| 49 | #include <scsi/scsicam.h> | 50 | #include <scsi/scsicam.h> |
| 50 | 51 | ||
| 51 | #include "scsi.h" | 52 | #include "scsi.h" |
| @@ -3273,12 +3274,11 @@ mega_init_scb(adapter_t *adapter) | |||
| 3273 | * | 3274 | * |
| 3274 | * Routines for the character/ioctl interface to the driver. Find out if this | 3275 | * Routines for the character/ioctl interface to the driver. Find out if this |
| 3275 | * is a valid open. | 3276 | * is a valid open. |
| 3276 | * | ||
| 3277 | * No BKL needed here. | ||
| 3278 | */ | 3277 | */ |
| 3279 | static int | 3278 | static int |
| 3280 | megadev_open (struct inode *inode, struct file *filep) | 3279 | megadev_open (struct inode *inode, struct file *filep) |
| 3281 | { | 3280 | { |
| 3281 | cycle_kernel_lock(); | ||
| 3282 | /* | 3282 | /* |
| 3283 | * Only allow superuser to access private ioctl interface | 3283 | * Only allow superuser to access private ioctl interface |
| 3284 | */ | 3284 | */ |
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c index 81374b7c555c..fc7ac158476c 100644 --- a/drivers/scsi/megaraid/megaraid_sas.c +++ b/drivers/scsi/megaraid/megaraid_sas.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/spinlock.h> | 33 | #include <linux/spinlock.h> |
| 34 | #include <linux/interrupt.h> | 34 | #include <linux/interrupt.h> |
| 35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
| 36 | #include <linux/smp_lock.h> | ||
| 36 | #include <linux/uio.h> | 37 | #include <linux/uio.h> |
| 37 | #include <asm/uaccess.h> | 38 | #include <asm/uaccess.h> |
| 38 | #include <linux/fs.h> | 39 | #include <linux/fs.h> |
| @@ -2860,10 +2861,10 @@ static void megasas_shutdown(struct pci_dev *pdev) | |||
| 2860 | 2861 | ||
| 2861 | /** | 2862 | /** |
| 2862 | * megasas_mgmt_open - char node "open" entry point | 2863 | * megasas_mgmt_open - char node "open" entry point |
| 2863 | * No BKL is needed here. | ||
| 2864 | */ | 2864 | */ |
| 2865 | static int megasas_mgmt_open(struct inode *inode, struct file *filep) | 2865 | static int megasas_mgmt_open(struct inode *inode, struct file *filep) |
| 2866 | { | 2866 | { |
| 2867 | cycle_kernel_lock(); | ||
| 2867 | /* | 2868 | /* |
| 2868 | * Allow only those users with admin rights | 2869 | * Allow only those users with admin rights |
| 2869 | */ | 2870 | */ |
