2009-08-05 09:26:54

by Zhu Yi

[permalink] [raw]
Subject: [PATCH] nl80211: fix attrtype and value for NL80211_ATTR_SUPPORTED_COMMANDS

The patch fixes the misuse between attrtype and value for the
CMD list nested in NL80211_ATTR_SUPPORTED_COMMANDS attribute.

Signed-off-by: Zhu Yi <[email protected]>
---
net/wireless/nl80211.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 0cd5482..086d3fb 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -520,7 +520,7 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
do { \
if (dev->ops->op) { \
i++; \
- NLA_PUT_U32(msg, i, NL80211_CMD_ ## n); \
+ NLA_PUT_U32(msg, NL80211_CMD_ ## n, i); \
} \
} while (0)

@@ -539,19 +539,19 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
CMD(join_ibss, JOIN_IBSS);
if (dev->wiphy.netnsok) {
i++;
- NLA_PUT_U32(msg, i, NL80211_CMD_SET_WIPHY_NETNS);
+ NLA_PUT_U32(msg, NL80211_CMD_SET_WIPHY_NETNS, i);
}

#undef CMD

if (dev->ops->connect || dev->ops->auth) {
i++;
- NLA_PUT_U32(msg, i, NL80211_CMD_CONNECT);
+ NLA_PUT_U32(msg, NL80211_CMD_CONNECT, i);
}

if (dev->ops->disconnect || dev->ops->deauth) {
i++;
- NLA_PUT_U32(msg, i, NL80211_CMD_DISCONNECT);
+ NLA_PUT_U32(msg, NL80211_CMD_DISCONNECT, i);
}

nla_nest_end(msg, nl_cmds);
--
1.6.0.4



2009-08-06 01:46:46

by Zhu Yi

[permalink] [raw]
Subject: Re: [PATCH] nl80211: fix attrtype and value for NL80211_ATTR_SUPPORTED_COMMANDS

On Wed, 2009-08-05 at 23:41 +0800, Johannes Berg wrote:
> On Wed, 2009-08-05 at 17:28 +0800, Zhu Yi wrote:
> > The patch fixes the misuse between attrtype and value for the
> > CMD list nested in NL80211_ATTR_SUPPORTED_COMMANDS attribute.
>
> No? It was this way intentionally.
>
> > --- a/net/wireless/nl80211.c
> > +++ b/net/wireless/nl80211.c
> > @@ -520,7 +520,7 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
> > do { \
> > if (dev->ops->op) { \
> > i++; \
> > - NLA_PUT_U32(msg, i, NL80211_CMD_ ## n); \
> > + NLA_PUT_U32(msg, NL80211_CMD_ ## n, i); \
>
> This is an array, the index doesn't matter, and the value is the
> supported command. You parse it with nla_for_each_nested()

I'm trying to find if a command (i.e. NL80211_CMD_CONNECT) is supported
or not. I think I can use nla_find_nested() if the command is an
attribute. But I can also do the find myself if it is an array like now.
So, never mind.

Thanks,
-yi


2009-08-05 15:41:51

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] nl80211: fix attrtype and value for NL80211_ATTR_SUPPORTED_COMMANDS

On Wed, 2009-08-05 at 17:28 +0800, Zhu Yi wrote:
> The patch fixes the misuse between attrtype and value for the
> CMD list nested in NL80211_ATTR_SUPPORTED_COMMANDS attribute.

No? It was this way intentionally.

> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -520,7 +520,7 @@ static int nl80211_send_wiphy(struct sk_buff *msg, u32 pid, u32 seq, int flags,
> do { \
> if (dev->ops->op) { \
> i++; \
> - NLA_PUT_U32(msg, i, NL80211_CMD_ ## n); \
> + NLA_PUT_U32(msg, NL80211_CMD_ ## n, i); \

This is an array, the index doesn't matter, and the value is the
supported command. You parse it with nla_for_each_nested()

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part

2009-08-06 07:28:11

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] nl80211: fix attrtype and value for NL80211_ATTR_SUPPORTED_COMMANDS

On Thu, 2009-08-06 at 09:46 +0800, Zhu Yi wrote:

> I'm trying to find if a command (i.e. NL80211_CMD_CONNECT) is supported
> or not. I think I can use nla_find_nested() if the command is an
> attribute. But I can also do the find myself if it is an array like now.

Ok, that would have worked too, but I'm pretty sure I documented it the
way I also implemented it.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part