Skip to content

Commit

Permalink
nl80211: explicitly check enum nl80211_mesh_power_mode
Browse files Browse the repository at this point in the history
Different gcc versions appear to be treating enum with different
signedness, causing warnings with the out parameter one way or
the other.

Just use the correct type to avoid all that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Johannes Berg committed Aug 11, 2016
1 parent 4fdbc67 commit ff9a71a
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -5353,6 +5353,18 @@ static int nl80211_check_s32(const struct nlattr *nla, s32 min, s32 max, s32 *ou
return 0;
}

static int nl80211_check_power_mode(const struct nlattr *nla,
enum nl80211_mesh_power_mode min,
enum nl80211_mesh_power_mode max,
enum nl80211_mesh_power_mode *out)
{
u32 val = nla_get_u32(nla);
if (val < min || val > max)
return -EINVAL;
*out = val;
return 0;
}

static int nl80211_parse_mesh_config(struct genl_info *info,
struct mesh_config *cfg,
u32 *mask_out)
Expand Down Expand Up @@ -5497,7 +5509,7 @@ do { \
NL80211_MESH_POWER_ACTIVE,
NL80211_MESH_POWER_MAX,
mask, NL80211_MESHCONF_POWER_MODE,
nl80211_check_u32);
nl80211_check_power_mode);
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshAwakeWindowDuration,
0, 65535, mask,
NL80211_MESHCONF_AWAKE_WINDOW, nl80211_check_u16);
Expand Down

0 comments on commit ff9a71a

Please sign in to comment.