[PATCH 1/3] vxlan: silence one build warning

Subsystems: networking drivers, the rest

STALE4666d

11 messages, 3 authors, 2013-10-28 · open the first message on its own page

[PATCH 1/3] vxlan: silence one build warning

From: Zhi Yong Wu <hidden>
Date: 2013-10-25 07:51:24

From: Zhi Yong Wu <redacted>

drivers/net/vxlan.c: In function ‘vxlan_sock_add’:
drivers/net/vxlan.c:2298:11: warning: ‘sock’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/vxlan.c:2275:17: note: ‘sock’ was declared here
  LD      drivers/net/built-in.o

Signed-off-by: Zhi Yong Wu <redacted>
---
 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 2ef5b62..e15f1af 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2272,7 +2272,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 *sock = NULL;
 	struct sock *sk;
 	int rc = 0;
 	unsigned int h;
-- 
1.7.11.7

[PATCH 2/3] net, datagram: fix the uncorrect comment in zerocopy_sg_from_iovec()

From: Zhi Yong Wu <hidden>
Date: 2013-10-25 07:51:34

From: Zhi Yong Wu <redacted>

Signed-off-by: Zhi Yong Wu <redacted>
---
 net/core/datagram.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/datagram.c b/net/core/datagram.c
index af814e7..a16ed7b 100644
--- a/net/core/datagram.c
+++ b/net/core/datagram.c
@@ -577,7 +577,7 @@ EXPORT_SYMBOL(skb_copy_datagram_from_iovec);
 /**
  *	zerocopy_sg_from_iovec - Build a zerocopy datagram from an iovec
  *	@skb: buffer to copy
- *	@from: io vector to copy to
+ *	@from: io vector to copy from
  *	@offset: offset in the io vector to start copying from
  *	@count: amount of vectors to copy to buffer from
  *
-- 
1.7.11.7

[PATCH 3/3] net, iovec: fix the uncorrect comment in memcpy_fromiovecend()

From: Zhi Yong Wu <hidden>
Date: 2013-10-25 07:51:58

From: Zhi Yong Wu <redacted>

Signed-off-by: Zhi Yong Wu <redacted>
---
 net/core/iovec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/iovec.c b/net/core/iovec.c
index b77eeec..4cdb7c4 100644
--- a/net/core/iovec.c
+++ b/net/core/iovec.c
@@ -100,7 +100,7 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata,
 EXPORT_SYMBOL(memcpy_toiovecend);
 
 /*
- *	Copy iovec from kernel. Returns -EFAULT on error.
+ *	Copy iovec to kernel. Returns -EFAULT on error.
  */
 
 int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov,
-- 
1.7.11.7

Re: [PATCH 1/3] vxlan: silence one build warning

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-10-25 15:41:44

On Fri, 25 Oct 2013 15:49:18 +0800
Zhi Yong Wu [off-list ref] wrote:
quoted hunk
From: Zhi Yong Wu <redacted>

drivers/net/vxlan.c: In function ‘vxlan_sock_add’:
drivers/net/vxlan.c:2298:11: warning: ‘sock’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/vxlan.c:2275:17: note: ‘sock’ was declared here
  LD      drivers/net/built-in.o

Signed-off-by: Zhi Yong Wu <redacted>
---
 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 2ef5b62..e15f1af 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2272,7 +2272,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 *sock = NULL;
 	struct sock *sk;
 	int rc = 0;
 	unsigned int h;
This only happens with certain versions of Gcc which have buggy dependency
analysis. It doesn't happen with Gcc 4.7, think it only shows up in 4.4.
I would rather not fix the warning this way since it risks masking later bugs if this code ever changes.

Re: [PATCH 1/3] vxlan: silence one build warning

From: Zhi Yong Wu <hidden>
Date: 2013-10-26 07:06:08

On Fri, Oct 25, 2013 at 11:41 PM, Stephen Hemminger
[off-list ref] wrote:
On Fri, 25 Oct 2013 15:49:18 +0800
Zhi Yong Wu [off-list ref] wrote:
quoted
From: Zhi Yong Wu <redacted>

drivers/net/vxlan.c: In function ‘vxlan_sock_add’:
drivers/net/vxlan.c:2298:11: warning: ‘sock’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/vxlan.c:2275:17: note: ‘sock’ was declared here
  LD      drivers/net/built-in.o

Signed-off-by: Zhi Yong Wu <redacted>
---
 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 2ef5b62..e15f1af 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2272,7 +2272,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 *sock = NULL;
      struct sock *sk;
      int rc = 0;
      unsigned int h;
This only happens with certain versions of Gcc which have buggy dependency
analysis. It doesn't happen with Gcc 4.7, think it only shows up in 4.4.
I would rather not fix the warning this way since it risks masking later bugs if this code ever changes.
Gcc version is 4.7.2 on my box, this warning took palce.
# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
...
gcc version 4.7.2 20120921 (Red Hat 4.7.2-2) (GCC)


-- 
Regards,

Zhi Yong Wu

Re: [PATCH 1/3] vxlan: silence one build warning

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-10-26 14:48:33

On Sat, 26 Oct 2013 15:06:04 +0800
Zhi Yong Wu [off-list ref] wrote:
On Fri, Oct 25, 2013 at 11:41 PM, Stephen Hemminger
[off-list ref] wrote:
quoted
On Fri, 25 Oct 2013 15:49:18 +0800
Zhi Yong Wu [off-list ref] wrote:
quoted
From: Zhi Yong Wu <redacted>

drivers/net/vxlan.c: In function ‘vxlan_sock_add’:
drivers/net/vxlan.c:2298:11: warning: ‘sock’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/vxlan.c:2275:17: note: ‘sock’ was declared here
  LD      drivers/net/built-in.o

Signed-off-by: Zhi Yong Wu <redacted>
---
 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 2ef5b62..e15f1af 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2272,7 +2272,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 *sock = NULL;
      struct sock *sk;
      int rc = 0;
      unsigned int h;
This only happens with certain versions of Gcc which have buggy dependency
analysis. It doesn't happen with Gcc 4.7, think it only shows up in 4.4.
I would rather not fix the warning this way since it risks masking later bugs if this code ever changes.
Gcc version is 4.7.2 on my box, this warning took palce.
# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
...
gcc version 4.7.2 20120921 (Red Hat 4.7.2-2) (GCC)
I dont see it on Debian 7.
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc-4.7.real
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)

Re: [PATCH 1/3] vxlan: silence one build warning

From: Zhi Yong Wu <hidden>
Date: 2013-10-27 02:31:15

HI, Stephen

I saw it on Fedora 17 without latest kernel. Then what do you think
that it is appropriate to solve this problem? discard this patch? If
yes, i can also agree.


On Sat, Oct 26, 2013 at 10:48 PM, Stephen Hemminger
[off-list ref] wrote:
On Sat, 26 Oct 2013 15:06:04 +0800
Zhi Yong Wu [off-list ref] wrote:
quoted
On Fri, Oct 25, 2013 at 11:41 PM, Stephen Hemminger
[off-list ref] wrote:
quoted
On Fri, 25 Oct 2013 15:49:18 +0800
Zhi Yong Wu [off-list ref] wrote:
quoted
From: Zhi Yong Wu <redacted>

drivers/net/vxlan.c: In function ‘vxlan_sock_add’:
drivers/net/vxlan.c:2298:11: warning: ‘sock’ may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/vxlan.c:2275:17: note: ‘sock’ was declared here
  LD      drivers/net/built-in.o

Signed-off-by: Zhi Yong Wu <redacted>
---
 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 2ef5b62..e15f1af 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2272,7 +2272,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 *sock = NULL;
      struct sock *sk;
      int rc = 0;
      unsigned int h;
This only happens with certain versions of Gcc which have buggy dependency
analysis. It doesn't happen with Gcc 4.7, think it only shows up in 4.4.
I would rather not fix the warning this way since it risks masking later bugs if this code ever changes.
Gcc version is 4.7.2 on my box, this warning took palce.
# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
...
gcc version 4.7.2 20120921 (Red Hat 4.7.2-2) (GCC)
I dont see it on Debian 7.
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc-4.7.real
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)


-- 
Regards,

Zhi Yong Wu

Re: [PATCH 1/3] vxlan: silence one build warning

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-10-27 19:33:58

On Sun, 27 Oct 2013 10:30:56 +0800
Zhi Yong Wu [off-list ref] wrote:
HI, Stephen

I saw it on Fedora 17 without latest kernel. Then what do you think
that it is appropriate to solve this problem? discard this patch? If
yes, i can also agree.
Either find where the uninitialized use is being caused by finding the code
path where it happens (manual analysis), or ignore the warning.

Re: [PATCH 1/3] vxlan: silence one build warning

From: David Miller <davem@davemloft.net>
Date: 2013-10-28 04:38:10

From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 25 Oct 2013 08:41:34 -0700
I would rather not fix the warning this way since it risks masking
later bugs if this code ever changes.
But this is suboptimally coded, and is asking for the warning.

Anything returning a pointer by reference is asking for trouble
in my opinion.

The correct thing to do is to make create_v{4,6}_sock() return
the "struct socket *" as an error pointer.

No more ambiguous initializations, no more warnings.

Re: [PATCH 2/3] net, datagram: fix the uncorrect comment in zerocopy_sg_from_iovec()

From: David Miller <davem@davemloft.net>
Date: 2013-10-28 04:39:12

"uncorrect" is not a word, you mean to say "incorrect".

Same goes for patch #3.

Re: [PATCH 1/3] vxlan: silence one build warning

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-10-28 15:25:18

On Mon, 28 Oct 2013 00:38:07 -0400 (EDT)
David Miller [off-list ref] wrote:
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 25 Oct 2013 08:41:34 -0700
quoted
I would rather not fix the warning this way since it risks masking
later bugs if this code ever changes.
But this is suboptimally coded, and is asking for the warning.

Anything returning a pointer by reference is asking for trouble
in my opinion.

The correct thing to do is to make create_v{4,6}_sock() return
the "struct socket *" as an error pointer.

No more ambiguous initializations, no more warnings.
Agreed, original code used ERR_PTR (see vxlan_socket_create),
the side effect stuff only came with the addition of IPv6.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help