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@xxxxxxxxx> 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) { -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html