diff mbox

[-next] wl12xx: fix recent change to wl1271_tm_cmd_nvs_push()

Message ID 20110824113139.GE5975@shale.localdomain (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Dan Carpenter Aug. 24, 2011, 11:31 a.m. UTC
bc765bf3b9a "wl12xx: 1281/1283 support - Loading FW & NVS" had two
problems.  The condition was written so that it failed if "len" was
not equal to sizeof(struct wl1271_nvs_file).  Also we need to release
the locks on these new error paths.

Signed-off-by: Dan Carpenter <error27@gmail.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Luciano Coelho Aug. 24, 2011, 2:18 p.m. UTC | #1
Hi Dan,

On Wed, 2011-08-24 at 14:31 +0300, Dan Carpenter wrote: 
> bc765bf3b9a "wl12xx: 1281/1283 support - Loading FW & NVS" had two
> problems.  The condition was written so that it failed if "len" was
> not equal to sizeof(struct wl1271_nvs_file).  Also we need to release
> the locks on these new error paths.
> 
> Signed-off-by: Dan Carpenter <error27@gmail.com>

Thanks for your patch.  But we have just removed this function, since
the implementation was broken and the feature is not really used
anymore.

The patch that removes this function entirely is already queued for
inclusion on the 3.1-rc series:

http://git.kernel.org/?p=linux/kernel/git/linville/wireless.git;a=commit;h=80900d0140a7648587982c8f299830e900e49165
diff mbox

Patch

diff --git a/drivers/net/wireless/wl12xx/testmode.c b/drivers/net/wireless/wl12xx/testmode.c
index 88add68..10c1762 100644
--- a/drivers/net/wireless/wl12xx/testmode.c
+++ b/drivers/net/wireless/wl12xx/testmode.c
@@ -208,11 +208,17 @@  static int wl1271_tm_cmd_nvs_push(struct wl1271 *wl, struct nlattr *tb[])
 
 	kfree(wl->nvs);
 
-	if ((wl->chip.id == CHIP_ID_1283_PG20) &&
-	    (len != sizeof(struct wl128x_nvs_file)))
-		return -EINVAL;
-	else if (len != sizeof(struct wl1271_nvs_file))
-		return -EINVAL;
+	if (wl->chip.id == CHIP_ID_1283_PG20) {
+		if (len != sizeof(struct wl128x_nvs_file)) {
+			ret = -EINVAL;
+			goto out;
+		}
+	} else {
+		if (len != sizeof(struct wl1271_nvs_file)) {
+			ret = -EINVAL;
+			goto out;
+		}
+	}
 
 	wl->nvs = kzalloc(len, GFP_KERNEL);
 	if (!wl->nvs) {