diff mbox

netlink: fix the warning introduced by netlink API replacement

Message ID 1364563360-3516-1-git-send-email-honkiko@gmail.com
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Hong zhi guo March 29, 2013, 1:22 p.m. UTC
Signed-off-by: Hong Zhiguo <honkiko@gmail.com>
---
 net/ieee802154/netlink.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Thomas Graf March 29, 2013, 1:58 p.m. UTC | #1
On 03/29/13 at 09:22pm, Hong Zhiguo wrote:
> Signed-off-by: Hong Zhiguo <honkiko@gmail.com>
> ---
>  net/ieee802154/netlink.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/net/ieee802154/netlink.c b/net/ieee802154/netlink.c
> index 9247252..91b0363 100644
> --- a/net/ieee802154/netlink.c
> +++ b/net/ieee802154/netlink.c
> @@ -65,7 +65,8 @@ struct sk_buff *ieee802154_nl_create(int flags, u8 req)
>  int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group)
>  {
>  	/* XXX: nlh is right at the start of msg */
> -	void *hdr = genlmsg_data(nlmsg_data(msg->data));
> +	struct nlmsghdr *nlh = (struct nlmsghdr *)msg->data;
> +	void *hdr = genlmsg_data(nlmsg_data(nlh));

You should be using nlmsg_hdr() which would also allow to drop
the 'XXX' comment.

Obviously this was a partial API abuse that lead to these warnings
and the whole point of converting is to trigger such warnings instead
of silently accept msitakes, but it would have been great to catch
this in the first place by compiling with allmodconfig + some random
configs.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/ieee802154/netlink.c b/net/ieee802154/netlink.c
index 9247252..91b0363 100644
--- a/net/ieee802154/netlink.c
+++ b/net/ieee802154/netlink.c
@@ -65,7 +65,8 @@  struct sk_buff *ieee802154_nl_create(int flags, u8 req)
 int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group)
 {
 	/* XXX: nlh is right at the start of msg */
-	void *hdr = genlmsg_data(nlmsg_data(msg->data));
+	struct nlmsghdr *nlh = (struct nlmsghdr *)msg->data;
+	void *hdr = genlmsg_data(nlmsg_data(nlh));
 
 	if (genlmsg_end(msg, hdr) < 0)
 		goto out;
@@ -98,7 +99,8 @@  struct sk_buff *ieee802154_nl_new_reply(struct genl_info *info,
 int ieee802154_nl_reply(struct sk_buff *msg, struct genl_info *info)
 {
 	/* XXX: nlh is right at the start of msg */
-	void *hdr = genlmsg_data(nlmsg_data(msg->data));
+	struct nlmsghdr *nlh = (struct nlmsghdr *)msg->data;
+	void *hdr = genlmsg_data(nlmsg_data(nlh));
 
 	if (genlmsg_end(msg, hdr) < 0)
 		goto out;