From 66fd87d858d7b02bc5b80fbd201d21d45002d87a Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 May 2008 19:15:41 +0200 Subject: [PATCH] --- yaml --- r: 100335 b: refs/heads/master c: 556889a4ae89d5f2adf98cac58ecf9326b0d0297 h: refs/heads/master i: 100333: 41d7680406351fe3b70a0227087ae52844521cec 100331: f799810e20691e5f12c398a45111c59aa5179675 100327: 83120384189fbfbd1a3db6e84f2d712b784746ba 100319: ecf9cbe98585052773bc97d09db1d7f30ab5f516 v: v3 --- [refs] | 2 +- trunk/drivers/char/briq_panel.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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; }