diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2010-02-19 13:23:47 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-19 15:40:51 -0800 |
commit | b8afe6416101549e877f8470f2a160df69676166 (patch) | |
tree | 34020e2ceece02d144bb88df908aad7ef95539bf /net/core/net-sysfs.c | |
parent | 88af182e389097997c5e2a0b42285b3522796759 (diff) |
net-sysfs: Use rtnl_trylock in wireless sysfs methods.
The wireless sysfs methods like the rest of the networking sysfs
methods are removed with the rtnl_lock held and block until
the existing methods stop executing. So use rtnl_trylock
and restart_syscall so that the code continues to work.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r-- | net/core/net-sysfs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index fbc1c7472c5e..099c753c4213 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -410,7 +410,8 @@ static ssize_t wireless_show(struct device *d, char *buf, const struct iw_statistics *iw; ssize_t ret = -EINVAL; - rtnl_lock(); + if (!rtnl_trylock()) + return restart_syscall(); if (dev_isalive(dev)) { iw = get_wireless_stats(dev); if (iw) |