* [PATCH] net, vxlan Fix compile warning @ 2013-09-13 12:29 Prarit Bhargava 2013-09-13 12:58 ` Jiri Pirko ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Prarit Bhargava @ 2013-09-13 12:29 UTC (permalink / raw) To: netdev; +Cc: Prarit Bhargava, jpirko, tgraf, David S. Miller Fix a unintialized variable warning. drivers/net/vxlan.c: In function ‘vxlan_sock_add’: drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] vs->sock = sock; ^ drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here struct socket *sock; ^ Signed-off-by: Prarit Bhargava <prarit@redhat.com> Cc: jpirko@redhat.com Cc: tgraf@redhat.com Cc: "David S. Miller" <davem@davemloft.net> --- drivers/net/vxlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index bf64b41..ed3d7f4 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -2276,7 +2276,7 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, __be16 port, { struct vxlan_net *vn = net_generic(net, vxlan_net_id); struct vxlan_sock *vs; - struct socket *sock; + struct socket *uninitialized_var(sock); struct sock *sk; int rc = 0; unsigned int h; -- 1.7.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] net, vxlan Fix compile warning 2013-09-13 12:29 [PATCH] net, vxlan Fix compile warning Prarit Bhargava @ 2013-09-13 12:58 ` Jiri Pirko 2013-09-13 14:20 ` Stephen Hemminger 2013-09-17 1:23 ` David Miller 2 siblings, 0 replies; 11+ messages in thread From: Jiri Pirko @ 2013-09-13 12:58 UTC (permalink / raw) To: Prarit Bhargava; +Cc: netdev, jpirko, tgraf, David S. Miller Fri, Sep 13, 2013 at 02:29:12PM CEST, prarit@redhat.com wrote: >Fix a unintialized variable warning. > >drivers/net/vxlan.c: In function ‘vxlan_sock_add’: >drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > vs->sock = sock; > ^ >drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here > struct socket *sock; > ^ > >Signed-off-by: Prarit Bhargava <prarit@redhat.com> >Cc: jpirko@redhat.com >Cc: tgraf@redhat.com >Cc: "David S. Miller" <davem@davemloft.net> Reviewed-by: Jiri Pirko <jiri@resnulli.us> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net, vxlan Fix compile warning 2013-09-13 12:29 [PATCH] net, vxlan Fix compile warning Prarit Bhargava 2013-09-13 12:58 ` Jiri Pirko @ 2013-09-13 14:20 ` Stephen Hemminger 2013-09-13 14:23 ` Prarit Bhargava 2013-09-17 1:23 ` David Miller 2 siblings, 1 reply; 11+ messages in thread From: Stephen Hemminger @ 2013-09-13 14:20 UTC (permalink / raw) To: Prarit Bhargava; +Cc: netdev, jpirko, tgraf, David S. Miller On Fri, 13 Sep 2013 08:29:12 -0400 Prarit Bhargava <prarit@redhat.com> wrote: > Fix a unintialized variable warning. > > drivers/net/vxlan.c: In function ‘vxlan_sock_add’: > drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > vs->sock = sock; > ^ > drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here > struct socket *sock; > ^ > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> > Cc: jpirko@redhat.com > Cc: tgraf@redhat.com > Cc: "David S. Miller" <davem@davemloft.net> Which compiler version? Gcc 4.6 is known to be stupid, and I would rather not change the source if it is only caused by a gcc bug fixed in a later release. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net, vxlan Fix compile warning 2013-09-13 14:20 ` Stephen Hemminger @ 2013-09-13 14:23 ` Prarit Bhargava 2013-09-13 14:40 ` Stephen Hemminger 0 siblings, 1 reply; 11+ messages in thread From: Prarit Bhargava @ 2013-09-13 14:23 UTC (permalink / raw) To: Stephen Hemminger; +Cc: netdev, jpirko, tgraf, David S. Miller On 09/13/2013 10:20 AM, Stephen Hemminger wrote: > On Fri, 13 Sep 2013 08:29:12 -0400 > Prarit Bhargava <prarit@redhat.com> wrote: > >> Fix a unintialized variable warning. >> >> drivers/net/vxlan.c: In function ‘vxlan_sock_add’: >> drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] >> vs->sock = sock; >> ^ >> drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here >> struct socket *sock; >> ^ >> >> Signed-off-by: Prarit Bhargava <prarit@redhat.com> >> Cc: jpirko@redhat.com >> Cc: tgraf@redhat.com >> Cc: "David S. Miller" <davem@davemloft.net> > > Which compiler version? Gcc 4.6 is known to be stupid, > and I would rather not change the source if it is only caused > by a gcc bug fixed in a later release. Hi Stephen, [root@intel-rosecity-06 ~]# gcc --version gcc (GCC) 4.8.1 20130603 (Red Hat 4.8.1-1) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. P. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net, vxlan Fix compile warning 2013-09-13 14:23 ` Prarit Bhargava @ 2013-09-13 14:40 ` Stephen Hemminger 0 siblings, 0 replies; 11+ messages in thread From: Stephen Hemminger @ 2013-09-13 14:40 UTC (permalink / raw) To: Prarit Bhargava; +Cc: netdev, jpirko, tgraf, David S. Miller On Fri, 13 Sep 2013 10:23:51 -0400 Prarit Bhargava <prarit@redhat.com> wrote: > > > On 09/13/2013 10:20 AM, Stephen Hemminger wrote: > > On Fri, 13 Sep 2013 08:29:12 -0400 > > Prarit Bhargava <prarit@redhat.com> wrote: > > > >> Fix a unintialized variable warning. > >> > >> drivers/net/vxlan.c: In function ‘vxlan_sock_add’: > >> drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > >> vs->sock = sock; > >> ^ > >> drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here > >> struct socket *sock; > >> ^ > >> > >> Signed-off-by: Prarit Bhargava <prarit@redhat.com> > >> Cc: jpirko@redhat.com > >> Cc: tgraf@redhat.com > >> Cc: "David S. Miller" <davem@davemloft.net> > > > > Which compiler version? Gcc 4.6 is known to be stupid, > > and I would rather not change the source if it is only caused > > by a gcc bug fixed in a later release. > > Hi Stephen, > > [root@intel-rosecity-06 ~]# gcc --version > gcc (GCC) 4.8.1 20130603 (Red Hat 4.8.1-1) > Copyright (C) 2013 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > P. Argh, gcc got stupid again. I guess we have to live it. Acked-by: Stephen Hemminger <stephen@networkplumber.org> ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net, vxlan Fix compile warning 2013-09-13 12:29 [PATCH] net, vxlan Fix compile warning Prarit Bhargava 2013-09-13 12:58 ` Jiri Pirko 2013-09-13 14:20 ` Stephen Hemminger @ 2013-09-17 1:23 ` David Miller 2013-09-17 19:12 ` [PATCH 1/2] " Prarit Bhargava 2 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2013-09-17 1:23 UTC (permalink / raw) To: prarit; +Cc: netdev, jpirko, tgraf From: Prarit Bhargava <prarit@redhat.com> Date: Fri, 13 Sep 2013 08:29:12 -0400 > Fix a unintialized variable warning. > > drivers/net/vxlan.c: In function ‘vxlan_sock_add’: > drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] > vs->sock = sock; > ^ > drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here > struct socket *sock; > ^ > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> Make create_v{4,6}_sock() return an err pointer. Problem solved and no incredibly ugly, unnecessary, annotations. The error code return from these functions already gets turned into and error pointer at the call site, which makes this situation even more rediculous. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] Re: net, vxlan Fix compile warning 2013-09-17 1:23 ` David Miller @ 2013-09-17 19:12 ` Prarit Bhargava 2013-09-17 20:26 ` Ben Hutchings 0 siblings, 1 reply; 11+ messages in thread From: Prarit Bhargava @ 2013-09-17 19:12 UTC (permalink / raw) To: netdev; +Cc: Prarit Bhargava, jpirko, davem, stephen Fix a unintialized variable warning. drivers/net/vxlan.c: In function ‘vxlan_sock_add’: drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] vs->sock = sock; ^ drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here struct socket *sock; ^ [v2]: davem suggested resolving this by making create_v{4,6}_sock() return an err pointer. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Cc: jpirko@redhat.com Cc: davem@davemloft.net Cc: stephen@networkplumber.org --- drivers/net/vxlan.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index bf64b41..6ec6aa4 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -2184,7 +2184,7 @@ static void vxlan_del_work(struct work_struct *work) * could be used for both IPv4 and IPv6 communications, but * users may set bindv6only=1. */ -static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v6_sock(struct net *net, __be16 port) { struct sock *sk; struct socket *sock; @@ -2197,7 +2197,7 @@ static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) rc = sock_create_kern(AF_INET6, SOCK_DGRAM, IPPROTO_UDP, &sock); if (rc < 0) { pr_debug("UDPv6 socket create failed\n"); - return rc; + return ERR_PTR(rc); } /* Put in proper namespace */ @@ -2212,28 +2212,27 @@ static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) pr_debug("bind for UDPv6 socket %pI6:%u (%d)\n", &vxlan_addr.sin6_addr, ntohs(vxlan_addr.sin6_port), rc); sk_release_kernel(sk); - return rc; + return ERR_PTR(rc); } /* At this point, IPv6 module should have been loaded in * sock_create_kern(). */ BUG_ON(!ipv6_stub); - *psock = sock; /* Disable multicast loopback */ inet_sk(sk)->mc_loop = 0; - return 0; + return sock; } #else -static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v6_sock(struct net *net, __be16 port) { - return -EPFNOSUPPORT; + return ERR_PTR(-EPFNOSUPPORT); } #endif -static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v4_sock(struct net *net, __be16 port) { struct sock *sk; struct socket *sock; @@ -2248,7 +2247,7 @@ static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) rc = sock_create_kern(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock); if (rc < 0) { pr_debug("UDP socket create failed\n"); - return rc; + return ERR_PTR(rc); } /* Put in proper namespace */ @@ -2261,13 +2260,12 @@ static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) pr_debug("bind for UDP socket %pI4:%u (%d)\n", &vxlan_addr.sin_addr, ntohs(vxlan_addr.sin_port), rc); sk_release_kernel(sk); - return rc; + return ERR_PTR(rc); } - *psock = sock; /* Disable multicast loopback */ inet_sk(sk)->mc_loop = 0; - return 0; + return sock; } /* Create new listen socket if needed */ @@ -2291,9 +2289,9 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, __be16 port, INIT_WORK(&vs->del_work, vxlan_del_work); if (ipv6) - rc = create_v6_sock(net, port, &sock); + sock = create_v6_sock(net, port); else - rc = create_v4_sock(net, port, &sock); + sock = create_v4_sock(net, port); if (rc < 0) { kfree(vs); return ERR_PTR(rc); -- 1.7.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] Re: net, vxlan Fix compile warning 2013-09-17 19:12 ` [PATCH 1/2] " Prarit Bhargava @ 2013-09-17 20:26 ` Ben Hutchings 2013-09-19 13:04 ` [PATCH 1/2] net, vxlan Fix compile warning [v3] Prarit Bhargava 0 siblings, 1 reply; 11+ messages in thread From: Ben Hutchings @ 2013-09-17 20:26 UTC (permalink / raw) To: Prarit Bhargava; +Cc: netdev, jpirko, davem, stephen You don't seem to have completed this change: On Tue, 2013-09-17 at 15:12 -0400, Prarit Bhargava wrote: [...] > @@ -2291,9 +2289,9 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, __be16 port, > INIT_WORK(&vs->del_work, vxlan_del_work); > > if (ipv6) > - rc = create_v6_sock(net, port, &sock); > + sock = create_v6_sock(net, port); > else > - rc = create_v4_sock(net, port, &sock); > + sock = create_v4_sock(net, port); > if (rc < 0) { if (IS_ERR(sock)) { > kfree(vs); > return ERR_PTR(rc); return ERR_CAST(sock); -- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] net, vxlan Fix compile warning [v3] 2013-09-17 20:26 ` Ben Hutchings @ 2013-09-19 13:04 ` Prarit Bhargava 2013-09-19 13:09 ` David Miller 0 siblings, 1 reply; 11+ messages in thread From: Prarit Bhargava @ 2013-09-19 13:04 UTC (permalink / raw) To: netdev; +Cc: Prarit Bhargava, jpirko, davem, stephen, bhutchings Fix a unintialized variable warning. drivers/net/vxlan.c: In function ‘vxlan_sock_add’: drivers/net/vxlan.c:2240:11: error: ‘sock’ may be used uninitialized in this function [-Werror=maybe-uninitialized] vs->sock = sock; ^ drivers/net/vxlan.c:2217:17: note: ‘sock’ was declared here struct socket *sock; ^ [v2]: davem suggested resolving this by making create_v{4,6}_sock() return an err pointer. [v3]: Ben Hutchings pointed out a missed conversion Signed-off-by: Prarit Bhargava <prarit@redhat.com> Cc: jpirko@redhat.com Cc: davem@davemloft.net Cc: stephen@networkplumber.org Cc: bhutchings@solarflare.com --- drivers/net/vxlan.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index bf64b41..0583d45 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -2184,7 +2184,7 @@ static void vxlan_del_work(struct work_struct *work) * could be used for both IPv4 and IPv6 communications, but * users may set bindv6only=1. */ -static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v6_sock(struct net *net, __be16 port) { struct sock *sk; struct socket *sock; @@ -2197,7 +2197,7 @@ static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) rc = sock_create_kern(AF_INET6, SOCK_DGRAM, IPPROTO_UDP, &sock); if (rc < 0) { pr_debug("UDPv6 socket create failed\n"); - return rc; + return ERR_PTR(rc); } /* Put in proper namespace */ @@ -2212,28 +2212,27 @@ static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) pr_debug("bind for UDPv6 socket %pI6:%u (%d)\n", &vxlan_addr.sin6_addr, ntohs(vxlan_addr.sin6_port), rc); sk_release_kernel(sk); - return rc; + return ERR_PTR(rc); } /* At this point, IPv6 module should have been loaded in * sock_create_kern(). */ BUG_ON(!ipv6_stub); - *psock = sock; /* Disable multicast loopback */ inet_sk(sk)->mc_loop = 0; - return 0; + return sock; } #else -static int create_v6_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v6_sock(struct net *net, __be16 port) { - return -EPFNOSUPPORT; + return ERR_PTR(-EPFNOSUPPORT); } #endif -static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) +static struct socket *create_v4_sock(struct net *net, __be16 port) { struct sock *sk; struct socket *sock; @@ -2248,7 +2247,7 @@ static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) rc = sock_create_kern(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock); if (rc < 0) { pr_debug("UDP socket create failed\n"); - return rc; + return ERR_PTR(rc); } /* Put in proper namespace */ @@ -2261,13 +2260,12 @@ static int create_v4_sock(struct net *net, __be16 port, struct socket **psock) pr_debug("bind for UDP socket %pI4:%u (%d)\n", &vxlan_addr.sin_addr, ntohs(vxlan_addr.sin_port), rc); sk_release_kernel(sk); - return rc; + return ERR_PTR(rc); } - *psock = sock; /* Disable multicast loopback */ inet_sk(sk)->mc_loop = 0; - return 0; + return sock; } /* Create new listen socket if needed */ @@ -2278,7 +2276,6 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, __be16 port, struct vxlan_sock *vs; struct socket *sock; struct sock *sk; - int rc = 0; unsigned int h; vs = kmalloc(sizeof(*vs), GFP_KERNEL); @@ -2291,12 +2288,12 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, __be16 port, INIT_WORK(&vs->del_work, vxlan_del_work); if (ipv6) - rc = create_v6_sock(net, port, &sock); + sock = create_v6_sock(net, port); else - rc = create_v4_sock(net, port, &sock); - if (rc < 0) { + sock = create_v4_sock(net, port); + if (IS_ERR(sock)) { kfree(vs); - return ERR_PTR(rc); + return ERR_CAST(sock); } vs->sock = sock; -- 1.7.9.3 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] net, vxlan Fix compile warning [v3] 2013-09-19 13:04 ` [PATCH 1/2] net, vxlan Fix compile warning [v3] Prarit Bhargava @ 2013-09-19 13:09 ` David Miller 2013-09-19 13:13 ` Prarit Bhargava 0 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2013-09-19 13:09 UTC (permalink / raw) To: prarit; +Cc: netdev, jpirko, stephen, bhutchings You must resend all of the patches in the series when you make updates, not just the patches you have changed. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] net, vxlan Fix compile warning [v3] 2013-09-19 13:09 ` David Miller @ 2013-09-19 13:13 ` Prarit Bhargava 0 siblings, 0 replies; 11+ messages in thread From: Prarit Bhargava @ 2013-09-19 13:13 UTC (permalink / raw) To: David Miller; +Cc: netdev, jpirko, stephen, bhutchings On 09/19/2013 09:09 AM, David Miller wrote: > > You must resend all of the patches in the series when you make > updates, not just the patches you have changed. Ah, okay :) I've been dealing with other mailing lists and they prefer single patch updates like this. My apologies ... I'll send out a new update in a week or so when Jack Morgenstein, jackm@dev.mellanox.co.il, returns. Again, my apologies for not adhering to this list's rules and procedures. P. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-09-19 13:13 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-09-13 12:29 [PATCH] net, vxlan Fix compile warning Prarit Bhargava 2013-09-13 12:58 ` Jiri Pirko 2013-09-13 14:20 ` Stephen Hemminger 2013-09-13 14:23 ` Prarit Bhargava 2013-09-13 14:40 ` Stephen Hemminger 2013-09-17 1:23 ` David Miller 2013-09-17 19:12 ` [PATCH 1/2] " Prarit Bhargava 2013-09-17 20:26 ` Ben Hutchings 2013-09-19 13:04 ` [PATCH 1/2] net, vxlan Fix compile warning [v3] Prarit Bhargava 2013-09-19 13:09 ` David Miller 2013-09-19 13:13 ` Prarit Bhargava
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).