nl80211: fix OBSS PD min and max offset validation
BugLink: https://bugs.launchpad.net/bugs/1902115 [ Upstream commit6c8b6e4a5f
] The SRG min and max offset won't present when SRG Information Present of SR control field of Spatial Reuse Parameter Set element set to 0. Per spec. IEEE802.11ax D7.0, SRG OBSS PD Min Offset ≤ SRG OBSS PD Max Offset. Hence fix the constrain check to allow same values in both offset and also call appropriate nla_get function to read the values. Fixes:796e90f42b
("cfg80211: add support for parsing OBBS_PD attributes") Signed-off-by: Rajkumar Manoharan <rmanohar@codeaurora.org> Link: https://lore.kernel.org/r/1601278091-20313-1-git-send-email-rmanohar@codeaurora.org Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Kamal Mostafa <kamal@canonical.com> Signed-off-by: Ian May <ian.may@canonical.com>
This commit is contained in:
parent
bfc6d39668
commit
40bdc80437
|
@ -4496,16 +4496,14 @@ static int nl80211_parse_he_obss_pd(struct nlattr *attrs,
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
if (!tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET] ||
|
||||
!tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET])
|
||||
return -EINVAL;
|
||||
if (tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET])
|
||||
he_obss_pd->min_offset =
|
||||
nla_get_u8(tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET]);
|
||||
if (tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET])
|
||||
he_obss_pd->max_offset =
|
||||
nla_get_u8(tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET]);
|
||||
|
||||
he_obss_pd->min_offset =
|
||||
nla_get_u32(tb[NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET]);
|
||||
he_obss_pd->max_offset =
|
||||
nla_get_u32(tb[NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET]);
|
||||
|
||||
if (he_obss_pd->min_offset >= he_obss_pd->max_offset)
|
||||
if (he_obss_pd->min_offset > he_obss_pd->max_offset)
|
||||
return -EINVAL;
|
||||
|
||||
he_obss_pd->enable = true;
|
||||
|
|
Loading…
Reference in New Issue