From: Arnd Bergmann Date: Tue, 20 May 2008 17:15:41 +0000 (+0200) Subject: briq_panel: BKL pushdown X-Git-Tag: v2.6.27-rc1~1103^2~74 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=556889a4ae89d5f2adf98cac58ecf9326b0d0297;p=karo-tx-linux.git briq_panel: BKL pushdown Signed-off-by: Arnd Bergmann --- diff --git a/drivers/char/briq_panel.c b/drivers/char/briq_panel.c index b6f2639f903d..d8cff909001c 100644 --- a/drivers/char/briq_panel.c +++ b/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; }