diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/testmode.c')
| -rw-r--r-- | drivers/net/wireless/wl12xx/testmode.c | 50 | 
1 files changed, 4 insertions, 46 deletions
diff --git a/drivers/net/wireless/wl12xx/testmode.c b/drivers/net/wireless/wl12xx/testmode.c index 5d5e1ef8720..4ae8effaee2 100644 --- a/drivers/net/wireless/wl12xx/testmode.c +++ b/drivers/net/wireless/wl12xx/testmode.c @@ -36,7 +36,6 @@ enum wl1271_tm_commands {  	WL1271_TM_CMD_TEST,  	WL1271_TM_CMD_INTERROGATE,  	WL1271_TM_CMD_CONFIGURE, -	WL1271_TM_CMD_NVS_PUSH,  	WL1271_TM_CMD_SET_PLT_MODE,  	WL1271_TM_CMD_RECOVER, @@ -139,12 +138,15 @@ static int wl1271_tm_cmd_interrogate(struct wl1271 *wl, struct nlattr *tb[])  	if (ret < 0) {  		wl1271_warning("testmode cmd interrogate failed: %d", ret); +		kfree(cmd);  		return ret;  	}  	skb = cfg80211_testmode_alloc_reply_skb(wl->hw->wiphy, sizeof(*cmd)); -	if (!skb) +	if (!skb) { +		kfree(cmd);  		return -ENOMEM; +	}  	NLA_PUT(skb, WL1271_TM_ATTR_DATA, sizeof(*cmd), cmd); @@ -187,48 +189,6 @@ static int wl1271_tm_cmd_configure(struct wl1271 *wl, struct nlattr *tb[])  	return 0;  } -static int wl1271_tm_cmd_nvs_push(struct wl1271 *wl, struct nlattr *tb[]) -{ -	int ret = 0; -	size_t len; -	void *buf; - -	wl1271_debug(DEBUG_TESTMODE, "testmode cmd nvs push"); - -	if (!tb[WL1271_TM_ATTR_DATA]) -		return -EINVAL; - -	buf = nla_data(tb[WL1271_TM_ATTR_DATA]); -	len = nla_len(tb[WL1271_TM_ATTR_DATA]); - -	mutex_lock(&wl->mutex); - -	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; - -	wl->nvs = kzalloc(len, GFP_KERNEL); -	if (!wl->nvs) { -		wl1271_error("could not allocate memory for the nvs file"); -		ret = -ENOMEM; -		goto out; -	} - -	memcpy(wl->nvs, buf, len); -	wl->nvs_len = len; - -	wl1271_debug(DEBUG_TESTMODE, "testmode pushed nvs"); - -out: -	mutex_unlock(&wl->mutex); - -	return ret; -} -  static int wl1271_tm_cmd_set_plt_mode(struct wl1271 *wl, struct nlattr *tb[])  {  	u32 val; @@ -285,8 +245,6 @@ int wl1271_tm_cmd(struct ieee80211_hw *hw, void *data, int len)  		return wl1271_tm_cmd_interrogate(wl, tb);  	case WL1271_TM_CMD_CONFIGURE:  		return wl1271_tm_cmd_configure(wl, tb); -	case WL1271_TM_CMD_NVS_PUSH: -		return wl1271_tm_cmd_nvs_push(wl, tb);  	case WL1271_TM_CMD_SET_PLT_MODE:  		return wl1271_tm_cmd_set_plt_mode(wl, tb);  	case WL1271_TM_CMD_RECOVER:  |