diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 13:43:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 13:43:11 -0400 |
commit | 5704e44d283e907623e3775c1262f206a2c48cf3 (patch) | |
tree | 0a981b24173e90854e7b7d812b35859e1e5f0174 /net | |
parent | 91151240ed8e97cc4457dae4094153c2744f1eb8 (diff) | |
parent | 6de5bd128d381ad88ac6d419a5e597048eb468cf (diff) |
Merge branch 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl
* 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
BKL: introduce CONFIG_BKL.
dabusb: remove the BKL
sunrpc: remove the big kernel lock
init/main.c: remove BKL notations
blktrace: remove the big kernel lock
rtmutex-tester: make it build without BKL
dvb-core: kill the big kernel lock
dvb/bt8xx: kill the big kernel lock
tlclk: remove big kernel lock
fix rawctl compat ioctls breakage on amd64 and itanic
uml: kill big kernel lock
parisc: remove big kernel lock
cris: autoconvert trivial BKL users
alpha: kill big kernel lock
isapnp: BKL removal
s390/block: kill the big kernel lock
hpet: kill BKL, add compat_ioctl
Diffstat (limited to 'net')
-rw-r--r-- | net/ipx/Kconfig | 1 | ||||
-rw-r--r-- | net/sunrpc/cache.c | 15 | ||||
-rw-r--r-- | net/sunrpc/rpc_pipe.c | 26 | ||||
-rw-r--r-- | net/x25/Kconfig | 1 |
4 files changed, 13 insertions, 30 deletions
diff --git a/net/ipx/Kconfig b/net/ipx/Kconfig index e9ad0062fbb6..02549cb2c328 100644 --- a/net/ipx/Kconfig +++ b/net/ipx/Kconfig | |||
@@ -3,6 +3,7 @@ | |||
3 | # | 3 | # |
4 | config IPX | 4 | config IPX |
5 | tristate "The IPX protocol" | 5 | tristate "The IPX protocol" |
6 | depends on BKL # should be fixable | ||
6 | select LLC | 7 | select LLC |
7 | ---help--- | 8 | ---help--- |
8 | This is support for the Novell networking protocol, IPX, commonly | 9 | This is support for the Novell networking protocol, IPX, commonly |
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 2b06410e584e..29b11e065015 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/workqueue.h> | 28 | #include <linux/workqueue.h> |
29 | #include <linux/mutex.h> | 29 | #include <linux/mutex.h> |
30 | #include <linux/pagemap.h> | 30 | #include <linux/pagemap.h> |
31 | #include <linux/smp_lock.h> | ||
32 | #include <asm/ioctls.h> | 31 | #include <asm/ioctls.h> |
33 | #include <linux/sunrpc/types.h> | 32 | #include <linux/sunrpc/types.h> |
34 | #include <linux/sunrpc/cache.h> | 33 | #include <linux/sunrpc/cache.h> |
@@ -1348,15 +1347,10 @@ static unsigned int cache_poll_procfs(struct file *filp, poll_table *wait) | |||
1348 | static long cache_ioctl_procfs(struct file *filp, | 1347 | static long cache_ioctl_procfs(struct file *filp, |
1349 | unsigned int cmd, unsigned long arg) | 1348 | unsigned int cmd, unsigned long arg) |
1350 | { | 1349 | { |
1351 | long ret; | ||
1352 | struct inode *inode = filp->f_path.dentry->d_inode; | 1350 | struct inode *inode = filp->f_path.dentry->d_inode; |
1353 | struct cache_detail *cd = PDE(inode)->data; | 1351 | struct cache_detail *cd = PDE(inode)->data; |
1354 | 1352 | ||
1355 | lock_kernel(); | 1353 | return cache_ioctl(inode, filp, cmd, arg, cd); |
1356 | ret = cache_ioctl(inode, filp, cmd, arg, cd); | ||
1357 | unlock_kernel(); | ||
1358 | |||
1359 | return ret; | ||
1360 | } | 1354 | } |
1361 | 1355 | ||
1362 | static int cache_open_procfs(struct inode *inode, struct file *filp) | 1356 | static int cache_open_procfs(struct inode *inode, struct file *filp) |
@@ -1555,13 +1549,8 @@ static long cache_ioctl_pipefs(struct file *filp, | |||
1555 | { | 1549 | { |
1556 | struct inode *inode = filp->f_dentry->d_inode; | 1550 | struct inode *inode = filp->f_dentry->d_inode; |
1557 | struct cache_detail *cd = RPC_I(inode)->private; | 1551 | struct cache_detail *cd = RPC_I(inode)->private; |
1558 | long ret; | ||
1559 | 1552 | ||
1560 | lock_kernel(); | 1553 | return cache_ioctl(inode, filp, cmd, arg, cd); |
1561 | ret = cache_ioctl(inode, filp, cmd, arg, cd); | ||
1562 | unlock_kernel(); | ||
1563 | |||
1564 | return ret; | ||
1565 | } | 1554 | } |
1566 | 1555 | ||
1567 | static int cache_open_pipefs(struct inode *inode, struct file *filp) | 1556 | static int cache_open_pipefs(struct inode *inode, struct file *filp) |
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 8c8eef2b8f26..28bcd52e3ce9 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/workqueue.h> | 27 | #include <linux/workqueue.h> |
28 | #include <linux/sunrpc/rpc_pipe_fs.h> | 28 | #include <linux/sunrpc/rpc_pipe_fs.h> |
29 | #include <linux/sunrpc/cache.h> | 29 | #include <linux/sunrpc/cache.h> |
30 | #include <linux/smp_lock.h> | ||
31 | 30 | ||
32 | static struct vfsmount *rpc_mount __read_mostly; | 31 | static struct vfsmount *rpc_mount __read_mostly; |
33 | static int rpc_mount_count; | 32 | static int rpc_mount_count; |
@@ -309,40 +308,33 @@ rpc_pipe_poll(struct file *filp, struct poll_table_struct *wait) | |||
309 | return mask; | 308 | return mask; |
310 | } | 309 | } |
311 | 310 | ||
312 | static int | 311 | static long |
313 | rpc_pipe_ioctl_unlocked(struct file *filp, unsigned int cmd, unsigned long arg) | 312 | rpc_pipe_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
314 | { | 313 | { |
315 | struct rpc_inode *rpci = RPC_I(filp->f_path.dentry->d_inode); | 314 | struct inode *inode = filp->f_path.dentry->d_inode; |
315 | struct rpc_inode *rpci = RPC_I(inode); | ||
316 | int len; | 316 | int len; |
317 | 317 | ||
318 | switch (cmd) { | 318 | switch (cmd) { |
319 | case FIONREAD: | 319 | case FIONREAD: |
320 | if (rpci->ops == NULL) | 320 | spin_lock(&inode->i_lock); |
321 | if (rpci->ops == NULL) { | ||
322 | spin_unlock(&inode->i_lock); | ||
321 | return -EPIPE; | 323 | return -EPIPE; |
324 | } | ||
322 | len = rpci->pipelen; | 325 | len = rpci->pipelen; |
323 | if (filp->private_data) { | 326 | if (filp->private_data) { |
324 | struct rpc_pipe_msg *msg; | 327 | struct rpc_pipe_msg *msg; |
325 | msg = (struct rpc_pipe_msg *)filp->private_data; | 328 | msg = (struct rpc_pipe_msg *)filp->private_data; |
326 | len += msg->len - msg->copied; | 329 | len += msg->len - msg->copied; |
327 | } | 330 | } |
331 | spin_unlock(&inode->i_lock); | ||
328 | return put_user(len, (int __user *)arg); | 332 | return put_user(len, (int __user *)arg); |
329 | default: | 333 | default: |
330 | return -EINVAL; | 334 | return -EINVAL; |
331 | } | 335 | } |
332 | } | 336 | } |
333 | 337 | ||
334 | static long | ||
335 | rpc_pipe_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | ||
336 | { | ||
337 | long ret; | ||
338 | |||
339 | lock_kernel(); | ||
340 | ret = rpc_pipe_ioctl_unlocked(filp, cmd, arg); | ||
341 | unlock_kernel(); | ||
342 | |||
343 | return ret; | ||
344 | } | ||
345 | |||
346 | static const struct file_operations rpc_pipe_fops = { | 338 | static const struct file_operations rpc_pipe_fops = { |
347 | .owner = THIS_MODULE, | 339 | .owner = THIS_MODULE, |
348 | .llseek = no_llseek, | 340 | .llseek = no_llseek, |
diff --git a/net/x25/Kconfig b/net/x25/Kconfig index e6759c9660bb..2196e55e4f61 100644 --- a/net/x25/Kconfig +++ b/net/x25/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | config X25 | 5 | config X25 |
6 | tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" | 6 | tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" |
7 | depends on EXPERIMENTAL | 7 | depends on EXPERIMENTAL |
8 | depends on BKL # should be fixable | ||
8 | ---help--- | 9 | ---help--- |
9 | X.25 is a set of standardized network protocols, similar in scope to | 10 | X.25 is a set of standardized network protocols, similar in scope to |
10 | frame relay; the one physical line from your box to the X.25 network | 11 | frame relay; the one physical line from your box to the X.25 network |