summaryrefslogtreecommitdiffstats
path: root/drivers/char/ipmi
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2008-06-23 17:00:14 -0600
committerJonathan Corbet <corbet@lwn.net>2008-07-02 15:06:28 -0600
commit70b028b7ea94f1b36c61f3ee1c921cc3a87812e6 (patch)
tree1d21a2e4f2e2434a16f1d7b31649f6954f74140b /drivers/char/ipmi
parentdda6445e219b5d1fd67e9426ce8d23f8fbfaaf66 (diff)
downloadkernel-crypto-70b028b7ea94f1b36c61f3ee1c921cc3a87812e6.tar.gz
kernel-crypto-70b028b7ea94f1b36c61f3ee1c921cc3a87812e6.tar.xz
kernel-crypto-70b028b7ea94f1b36c61f3ee1c921cc3a87812e6.zip
ipmi: fasync BKL pushdown
This driver really needs it to avoid races against open() Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'drivers/char/ipmi')
-rw-r--r--drivers/char/ipmi/ipmi_devintf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c
index c816656d6bf..c11a4048345 100644
--- a/drivers/char/ipmi/ipmi_devintf.c
+++ b/drivers/char/ipmi/ipmi_devintf.c
@@ -101,7 +101,9 @@ static int ipmi_fasync(int fd, struct file *file, int on)
struct ipmi_file_private *priv = file->private_data;
int result;
+ lock_kernel(); /* could race against open() otherwise */
result = fasync_helper(fd, file, on, &priv->fasync_queue);
+ unlock_kernel();
return (result);
}