aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-01-23 05:25:27 -0500
committerLuciano Coelho <coelho@ti.com>2011-01-24 16:15:11 -0500
commit8e2de74e781e696636e8b4cd08084d2b310d44d9 (patch)
treefcd5f1384c23920ed556ab0c202537899285acff /drivers/net/wireless/wl12xx
parentbbba3e6832ad3e974fb593a98abe03f8b60fc7f3 (diff)
wl12xx: wrong values are returned in gpio_power_write()
Return values were assigned to incorrect var / weren't assigned. fix it, and defer mutex_lock after the sanity checks. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/debugfs.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/wireless/wl12xx/debugfs.c b/drivers/net/wireless/wl12xx/debugfs.c
index dc3ca0031817..bebfa28a171a 100644
--- a/drivers/net/wireless/wl12xx/debugfs.c
+++ b/drivers/net/wireless/wl12xx/debugfs.c
@@ -261,27 +261,25 @@ static ssize_t gpio_power_write(struct file *file,
261 unsigned long value; 261 unsigned long value;
262 int ret; 262 int ret;
263 263
264 mutex_lock(&wl->mutex);
265
266 len = min(count, sizeof(buf) - 1); 264 len = min(count, sizeof(buf) - 1);
267 if (copy_from_user(buf, user_buf, len)) { 265 if (copy_from_user(buf, user_buf, len)) {
268 ret = -EFAULT; 266 return -EFAULT;
269 goto out;
270 } 267 }
271 buf[len] = '\0'; 268 buf[len] = '\0';
272 269
273 ret = strict_strtoul(buf, 0, &value); 270 ret = strict_strtoul(buf, 0, &value);
274 if (ret < 0) { 271 if (ret < 0) {
275 wl1271_warning("illegal value in gpio_power"); 272 wl1271_warning("illegal value in gpio_power");
276 goto out; 273 return -EINVAL;
277 } 274 }
278 275
276 mutex_lock(&wl->mutex);
277
279 if (value) 278 if (value)
280 wl1271_power_on(wl); 279 wl1271_power_on(wl);
281 else 280 else
282 wl1271_power_off(wl); 281 wl1271_power_off(wl);
283 282
284out:
285 mutex_unlock(&wl->mutex); 283 mutex_unlock(&wl->mutex);
286 return count; 284 return count;
287} 285}