mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
briq_panel: BKL pushdown
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
8324af6ddd
commit
556889a4ae
1 changed files with 7 additions and 2 deletions
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
||||||
|
#include <linux/smp_lock.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/tty.h>
|
#include <linux/tty.h>
|
||||||
|
@ -67,11 +68,15 @@ static void set_led(char state)
|
||||||
|
|
||||||
static int briq_panel_open(struct inode *ino, struct file *filep)
|
static int briq_panel_open(struct inode *ino, struct file *filep)
|
||||||
{
|
{
|
||||||
/* enforce single access */
|
lock_kernel();
|
||||||
if (vfd_is_open)
|
/* enforce single access, vfd_is_open is protected by BKL */
|
||||||
|
if (vfd_is_open) {
|
||||||
|
unlock_kernel();
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
}
|
||||||
vfd_is_open = 1;
|
vfd_is_open = 1;
|
||||||
|
|
||||||
|
unlock_kernel();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue