2013-07-11 09:30:46

by Chun-Yeow Yeoh

[permalink] [raw]
Subject: [PATCH] nl80211: fix the setting of RSSI threshold value for mesh

RSSI threshold value used for mesh peering should be in
negative value. After range checks to mesh parameters is
introduced, this is not allowed. Fix this.

Signed-off-by: Chun-Yeow Yeoh <[email protected]>
---
net/wireless/nl80211.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index a9444cd..e6164ab 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -4803,9 +4803,9 @@ do { \
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding, 0, 1,
mask, NL80211_MESHCONF_FORWARDING,
nla_get_u8);
- FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold, 1, 255,
- mask, NL80211_MESHCONF_RSSI_THRESHOLD,
- nla_get_u32);
+ FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold,
+ 0x80000000, 0xFFFFFFFF, mask,
+ NL80211_MESHCONF_RSSI_THRESHOLD, nla_get_u32);
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, ht_opmode, 0, 16,
mask, NL80211_MESHCONF_HT_OPMODE,
nla_get_u16);
--
1.7.0.4



2013-07-11 09:56:28

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] nl80211: fix the setting of RSSI threshold value for mesh

On Thu, 2013-07-11 at 17:23 +0800, Chun-Yeow Yeoh wrote:
> RSSI threshold value used for mesh peering should be in
> negative value. After range checks to mesh parameters is
> introduced, this is not allowed. Fix this.
>
> Signed-off-by: Chun-Yeow Yeoh <[email protected]>
> ---
> net/wireless/nl80211.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index a9444cd..e6164ab 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -4803,9 +4803,9 @@ do { \
> FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding, 0, 1,
> mask, NL80211_MESHCONF_FORWARDING,
> nla_get_u8);
> - FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold, 1, 255,
> - mask, NL80211_MESHCONF_RSSI_THRESHOLD,
> - nla_get_u32);
> + FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold,
> + 0x80000000, 0xFFFFFFFF, mask,
> + NL80211_MESHCONF_RSSI_THRESHOLD, nla_get_u32);

Maybe use nla_get_s32() instead?

johannes