Commit 5cdfed54 authored by Andrew Lutomirski's avatar Andrew Lutomirski Committed by David S. Miller

mac80211: return an error when SIWRATE doesn't match any rate

Currently mac80211 fails silently when trying to set a nonexistent
rate.  Return an error instead.
Signed-Off-By: default avatarAndy Lutomirski <luto@myrealbox.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 87c4ac84
...@@ -591,7 +591,7 @@ static int ieee80211_ioctl_siwrate(struct net_device *dev, ...@@ -591,7 +591,7 @@ static int ieee80211_ioctl_siwrate(struct net_device *dev,
sdata->bss->force_unicast_rateidx = -1; sdata->bss->force_unicast_rateidx = -1;
if (rate->value < 0) if (rate->value < 0)
return 0; return 0;
for (i=0; i< mode->num_rates; i++) { for (i=0; i < mode->num_rates; i++) {
struct ieee80211_rate *rates = &mode->rates[i]; struct ieee80211_rate *rates = &mode->rates[i];
int this_rate = rates->rate; int this_rate = rates->rate;
...@@ -599,10 +599,10 @@ static int ieee80211_ioctl_siwrate(struct net_device *dev, ...@@ -599,10 +599,10 @@ static int ieee80211_ioctl_siwrate(struct net_device *dev,
sdata->bss->max_ratectrl_rateidx = i; sdata->bss->max_ratectrl_rateidx = i;
if (rate->fixed) if (rate->fixed)
sdata->bss->force_unicast_rateidx = i; sdata->bss->force_unicast_rateidx = i;
break; return 0;
} }
} }
return 0; return -EINVAL;
} }
static int ieee80211_ioctl_giwrate(struct net_device *dev, static int ieee80211_ioctl_giwrate(struct net_device *dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment