diff mbox

net: i40e: avoid unused function warnings

Message ID 8814508.SjLecHrQqA@wuerfel (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann Jan. 20, 2016, 10:28 p.m. UTC
On Wednesday 20 January 2016 14:17:25 Jeff Kirsher wrote:
> On Wed, 2016-01-20 at 11:42 +0100, Arnd Bergmann wrote:
> > The addition of the geneve tunnel offload code left a couple
> > of functions unconditionally defined but empty whenever CONFIG_VXLAN
> > and CONFIG_GENEVE are disabled. gcc warns about this:
> > 
> > i40e_main.c:7049:13: warning: 'i40e_sync_udp_filters_subtask' defined
> > but not used [-Wunused-function]
> > i40e_main.c:8516:13: warning: 'i40e_add_vxlan_port' defined but not
> > used [-Wunused-function]
> > i40e_main.c:8561:13: warning: 'i40e_del_vxlan_port' defined but not
> > used [-Wunused-function]
> > i40e_main.c:8596:13: warning: 'i40e_add_geneve_port' defined but not
> > used [-Wunused-function]
> > i40e_main.c:8643:13: warning: 'i40e_del_geneve_port' defined but not
> > used [-Wunused-function]
> > 
> > This moves the #ifdef statements to the outside of the affected
> > functions, which avoids the warnings.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Fixes: 6a899024058d ("i40e: geneve tunnel offload support")
> > ---
> > This is a harmless regression against v4.4, found on ARM randconfig
> > builds
> 
> Thanks Arnd, I already have a patch from Eric Dumazet and Alex Duyck to
> resolve this issue.
> 
> Dave- I plan on pushing the fix later today to net.

Ok, thanks.

FWIW, I have another patch for this driver that I did not yet submit
because it's not a regression and I haven't written a proper changelog
for it (it's in a set of 15 patches for netdev that fix harmless warnings).

Do you have one for the warning below as well? I could not come up
with a better way than adding a bogus initialization, but maybe
there is one.

	Arnd

From d89be3f0f932a71dfb5480ee396db514879097c4 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Fri, 15 Jan 2016 17:31:07 +0100
Subject: [PATCH] net: i40e: shut up uninitialized variable warnings

intel/i40e/i40e_txrx.c: In function 'i40e_xmit_frame_ring':
intel/i40e/i40e_txrx.c:2367:20: error: 'oiph' may be used uninitialized in this function [-Werror=maybe-uninitialized]
intel/i40e/i40e_txrx.c:2317:16: note: 'oiph' was declared here
intel/i40e/i40e_txrx.c:2367:17: error: 'oudph' may be used uninitialized in this function [-Werror=maybe-uninitialized]
intel/i40e/i40e_txrx.c:2316:17: note: 'oudph' was declared here

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Comments

Kirsher, Jeffrey T Jan. 20, 2016, 10:44 p.m. UTC | #1
On Wed, 2016-01-20 at 23:28 +0100, Arnd Bergmann wrote:
> On Wednesday 20 January 2016 14:17:25 Jeff Kirsher wrote:
> > On Wed, 2016-01-20 at 11:42 +0100, Arnd Bergmann wrote:
> > > The addition of the geneve tunnel offload code left a couple
> > > of functions unconditionally defined but empty whenever
> CONFIG_VXLAN
> > > and CONFIG_GENEVE are disabled. gcc warns about this:
> > > 
> > > i40e_main.c:7049:13: warning: 'i40e_sync_udp_filters_subtask'
> defined
> > > but not used [-Wunused-function]
> > > i40e_main.c:8516:13: warning: 'i40e_add_vxlan_port' defined but
> not
> > > used [-Wunused-function]
> > > i40e_main.c:8561:13: warning: 'i40e_del_vxlan_port' defined but
> not
> > > used [-Wunused-function]
> > > i40e_main.c:8596:13: warning: 'i40e_add_geneve_port' defined but
> not
> > > used [-Wunused-function]
> > > i40e_main.c:8643:13: warning: 'i40e_del_geneve_port' defined but
> not
> > > used [-Wunused-function]
> > > 
> > > This moves the #ifdef statements to the outside of the affected
> > > functions, which avoids the warnings.
> > > 
> > > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > > Fixes: 6a899024058d ("i40e: geneve tunnel offload support")
> > > ---
> > > This is a harmless regression against v4.4, found on ARM
> randconfig
> > > builds
> > 
> > Thanks Arnd, I already have a patch from Eric Dumazet and Alex
> Duyck to
> > resolve this issue.
> > 
> > Dave- I plan on pushing the fix later today to net.
> 
> Ok, thanks.
> 
> FWIW, I have another patch for this driver that I did not yet submit
> because it's not a regression and I haven't written a proper
> changelog
> for it (it's in a set of 15 patches for netdev that fix harmless
> warnings).
> 
> Do you have one for the warning below as well? I could not come up
> with a better way than adding a bogus initialization, but maybe
> there is one.
> 
>         Arnd
> 
> From d89be3f0f932a71dfb5480ee396db514879097c4 Mon Sep 17 00:00:00
> 2001
> From: Arnd Bergmann <arnd@arndb.de>
> Date: Fri, 15 Jan 2016 17:31:07 +0100
> Subject: [PATCH] net: i40e: shut up uninitialized variable warnings
> 
> intel/i40e/i40e_txrx.c: In function 'i40e_xmit_frame_ring':
> intel/i40e/i40e_txrx.c:2367:20: error: 'oiph' may be used
> uninitialized in this function [-Werror=maybe-uninitialized]
> intel/i40e/i40e_txrx.c:2317:16: note: 'oiph' was declared here
> intel/i40e/i40e_txrx.c:2367:17: error: 'oudph' may be used
> uninitialized in this function [-Werror=maybe-uninitialized]
> intel/i40e/i40e_txrx.c:2316:17: note: 'oudph' was declared here
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Yeah, I have a fix for that as well.

You can confirm by pulling my next-queue tree (dev-queue branch).
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git d
ev-queue
Arnd Bergmann Jan. 20, 2016, 10:54 p.m. UTC | #2
On Wednesday 20 January 2016 14:44:45 Jeff Kirsher wrote:
> Yeah, I have a fix for that as well.
> 
> You can confirm by pulling my next-queue tree (dev-queue branch).
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git d
> ev-queue
> 

I checked out that branch, but still see both warnings in that one, plus
a new build error in igb, which I don't see in linux-next:

drivers/net/ethernet/intel/igb/igb_cdev.c: In function 'igb_mapring':
drivers/net/ethernet/intel/igb/igb_cdev.c:150:2: error: implicit declaration of function 'set_pages_uc' [-Werror=implicit-function-declaration]
  set_pages_uc(virt_to_page(ring->desc), ring->size >> PAGE_SHIFT);
  ^
drivers/net/ethernet/intel/igb/igb_cdev.c: In function 'igb_unmapring':
drivers/net/ethernet/intel/igb/igb_cdev.c:275:2: error: implicit declaration of function 'set_pages_wb' [-Werror=implicit-function-declaration]
  set_pages_wb(virt_to_page(ring->desc), ring->size >> PAGE_SHIFT);

	Arnd
Kirsher, Jeffrey T Jan. 20, 2016, 11:36 p.m. UTC | #3
On Wed, 2016-01-20 at 23:54 +0100, Arnd Bergmann wrote:
> On Wednesday 20 January 2016 14:44:45 Jeff Kirsher wrote:
> > Yeah, I have a fix for that as well.
> > 
> > You can confirm by pulling my next-queue tree (dev-queue branch).
> > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-
> queue.git d
> > ev-queue
> > 
> 
> I checked out that branch, but still see both warnings in that one,
> plus
> a new build error in igb, which I don't see in linux-next:
> 
> drivers/net/ethernet/intel/igb/igb_cdev.c: In function 'igb_mapring':
> drivers/net/ethernet/intel/igb/igb_cdev.c:150:2: error: implicit
> declaration of function 'set_pages_uc' [-Werror=implicit-function-
> declaration]
>   set_pages_uc(virt_to_page(ring->desc), ring->size >> PAGE_SHIFT);
>   ^
> drivers/net/ethernet/intel/igb/igb_cdev.c: In function
> 'igb_unmapring':
> drivers/net/ethernet/intel/igb/igb_cdev.c:275:2: error: implicit
> declaration of function 'set_pages_wb' [-Werror=implicit-function-
> declaration]
>   set_pages_wb(virt_to_page(ring->desc), ring->size >> PAGE_SHIFT);

Oops, I just realized I had not pushed my latest tree to kernel.org.

The igb issue still remains, I am working with the developer who
introduced the issue.  Looks like the i40e issue about possible
uninitialized variables still exists.  I thought we had resolved that
issue, but apparently not.

You should see Eric Dumazet's patch on the tree to resolve the other
i40e build warnings.

I can add your second patch to resolve the uninitialized variables to
my tree.
diff mbox

Patch

diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 720516b0e8ee..47bd8b3145a7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -2313,8 +2313,8 @@  static void i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 	struct iphdr *this_ip_hdr;
 	u32 network_hdr_len;
 	u8 l4_hdr = 0;
-	struct udphdr *oudph;
-	struct iphdr *oiph;
+	struct udphdr *oudph = NULL;
+	struct iphdr *oiph = NULL;
 	u32 l4_tunnel = 0;
 
 	if (skb->encapsulation) {