diff --git a/[refs] b/[refs] index 573f2942e862..f4d876faea2f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8324af6dddac11f9f7e9df8b784f6949ddb61b5d +refs/heads/master: 556889a4ae89d5f2adf98cac58ecf9326b0d0297 diff --git a/trunk/drivers/char/briq_panel.c b/trunk/drivers/char/briq_panel.c index b6f2639f903d..d8cff909001c 100644 --- a/trunk/drivers/char/briq_panel.c +++ b/trunk/drivers/char/briq_panel.c @@ -6,6 +6,7 @@ #include +#include #include #include #include @@ -67,11 +68,15 @@ static void set_led(char state) static int briq_panel_open(struct inode *ino, struct file *filep) { - /* enforce single access */ - if (vfd_is_open) + lock_kernel(); + /* enforce single access, vfd_is_open is protected by BKL */ + if (vfd_is_open) { + unlock_kernel(); return -EBUSY; + } vfd_is_open = 1; + unlock_kernel(); return 0; }