aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2008-05-15 18:39:03 -0400
committerJonathan Corbet <corbet@lwn.net>2008-06-20 16:05:50 -0400
commit78a3c3d7c6b89085610edfe86f7790144afc737e (patch)
treeb3f4937a220655b7a6a5221bf8d544c8e62d19f7 /sound/core
parentfc7f687a6878e19f7ce58cb8a65659cd2730b586 (diff)
sound: cdev lock_kernel() pushdown
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/sound.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sound/core/sound.c b/sound/core/sound.c
index 812f91b3de5..65b66fa6f97 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -21,6 +21,7 @@
21 21
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/smp_lock.h>
24#include <linux/time.h> 25#include <linux/time.h>
25#include <linux/device.h> 26#include <linux/device.h>
26#include <linux/moduleparam.h> 27#include <linux/moduleparam.h>
@@ -121,7 +122,7 @@ void *snd_lookup_minor_data(unsigned int minor, int type)
121 122
122EXPORT_SYMBOL(snd_lookup_minor_data); 123EXPORT_SYMBOL(snd_lookup_minor_data);
123 124
124static int snd_open(struct inode *inode, struct file *file) 125static int __snd_open(struct inode *inode, struct file *file)
125{ 126{
126 unsigned int minor = iminor(inode); 127 unsigned int minor = iminor(inode);
127 struct snd_minor *mptr = NULL; 128 struct snd_minor *mptr = NULL;
@@ -163,6 +164,18 @@ static int snd_open(struct inode *inode, struct file *file)
163 return err; 164 return err;
164} 165}
165 166
167
168/* BKL pushdown: nasty #ifdef avoidance wrapper */
169static int snd_open(struct inode *inode, struct file *file)
170{
171 int ret;
172
173 lock_kernel();
174 ret = __snd_open(inode, file);
175 unlock_kernel();
176 return ret;
177}
178
166static const struct file_operations snd_fops = 179static const struct file_operations snd_fops =
167{ 180{
168 .owner = THIS_MODULE, 181 .owner = THIS_MODULE,