aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2007-09-19 18:51:38 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 16:52:20 -0700
commitb85b3b7af52d1c1bd45bfcd47aa425a15fda45f7 (patch)
tree41b001e42407a29fa7f1cf57667b8ff4379faabb
parent90f4dd0f4ba910b86f387874ed990ca69c0951a5 (diff)
[B43]: Don't lock irq_lock in debugfs txpower adjust
It's not required and the txpower adjustment must not be in atomic. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/wireless/b43/debugfs.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/wireless/b43/debugfs.c b/drivers/net/wireless/b43/debugfs.c
index 3aafde9f08a..734e70e1a06 100644
--- a/drivers/net/wireless/b43/debugfs.c
+++ b/drivers/net/wireless/b43/debugfs.c
@@ -223,15 +223,10 @@ out:
static int txpower_g_write_file(struct b43_wldev *dev,
const char *buf, size_t count)
{
- unsigned long flags;
unsigned long phy_flags;
- int err = 0;
- spin_lock_irqsave(&dev->wl->irq_lock, flags);
- if (dev->phy.type != B43_PHYTYPE_G) {
- err = -ENODEV;
- goto out_unlock;
- }
+ if (dev->phy.type != B43_PHYTYPE_G)
+ return -ENODEV;
if ((count >= 4) && (memcmp(buf, "auto", 4) == 0)) {
/* Automatic control */
dev->phy.manual_txpower_control = 0;
@@ -240,10 +235,8 @@ static int txpower_g_write_file(struct b43_wldev *dev,
int bbatt = 0, rfatt = 0, txmix = 0, pa2db = 0, pa3db = 0;
/* Manual control */
if (sscanf(buf, "%d %d %d %d %d", &bbatt, &rfatt,
- &txmix, &pa2db, &pa3db) != 5) {
- err = -EINVAL;
- goto out_unlock;
- }
+ &txmix, &pa2db, &pa3db) != 5)
+ return -EINVAL;
b43_put_attenuation_into_ranges(dev, &bbatt, &rfatt);
dev->phy.manual_txpower_control = 1;
dev->phy.bbatt.att = bbatt;
@@ -262,10 +255,8 @@ static int txpower_g_write_file(struct b43_wldev *dev,
b43_radio_unlock(dev);
b43_phy_unlock(dev, phy_flags);
}
-out_unlock:
- spin_unlock_irqrestore(&dev->wl->irq_lock, flags);
- return err;
+ return 0;
}
/* wl->irq_lock is locked */