Skip to contentSkip to conversation

vmxnet3: fix building without CONFIG_PCI_MSI

PATCH Applied Arnd Bergmann 4 participants 4 messages Mar 13, 2014 – Mar 14, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vmxnet3: fix building without CONFIG_PCI_MSI

Since commit d25f06ea466e "vmxnet3: fix netpoll race condition", the vmxnet3 driver fails to build when CONFIG_PCI_MSI is disabled, because it unconditionally references the vmxnet3_msix_rx() function.

To fix this, use the same #ifdef in the caller that exists around the function definition.

Cc Neil Horman <[email protected]>
Cc Shreyas Bhatewara <[email protected]>
Cc "VMware, Inc." <[email protected]>
Cc "David S. Miller" <[email protected]>

---
Found this during randconfig testing on ARM. Most of the time when I report network driver problems, they get fixed in the netdev tree before I even find them, but since this is for a patch marked "stable", I made a proper patch anyway.

Please ignore if this is already a known problem, otherwise make sure the original patch doesn't get backported without addressing this issue first.

drivers/net/vmxnet3/vmxnet3_drv.c +5 -2
index cbd898f..28965ad 100644
@@ -1761,13 +1761,16 @@ static void
 vmxnet3_netpoll(struct net_device *netdev)
 {
 	struct vmxnet3_adapter *adapter = netdev_priv(netdev);
-	int i;
 
 	switch (adapter->intr.type) {
-	case VMXNET3_IT_MSIX:
+#ifdef CONFIG_PCI_MSI
+	case VMXNET3_IT_MSIX: {
+		int i;
 		for (i = 0; i < adapter->num_rx_queues; i++)
 			vmxnet3_msix_rx(0, &adapter->rx_queue[i]);
 		break;
+	}
+#endif
 	case VMXNET3_IT_MSI:
 	default:
 		vmxnet3_intr(0, adapter->netdev);
Acked-by on v1 1/1
#1 lore raw
Quoted 8 lines · Arnd Bergmann

Since commit d25f06ea466e "vmxnet3: fix netpoll race condition", the vmxnet3 driver fails to build when CONFIG_PCI_MSI is disabled, because it unconditionally references the vmxnet3_msix_rx() function.

To fix this, use the same #ifdef in the caller that exists around the function definition.

Quoted 6 lines
Cc Neil Horman <[email protected]>
Cc Shreyas Bhatewara <[email protected]>
Cc "VMware, Inc." <[email protected]>
Cc "David S. Miller" <[email protected]>
Quoted 35 lines

---
Found this during randconfig testing on ARM. Most of the time when I report network driver problems, they get fixed in the netdev tree before I even find them, but since this is for a patch marked "stable", I made a proper patch anyway.

Please ignore if this is already a known problem, otherwise make sure the original patch doesn't get backported without addressing this issue first.

drivers/net/vmxnet3/vmxnet3_drv.c +5 -2
index cbd898f..28965ad 100644
@@ -1761,13 +1761,16 @@ static void
 vmxnet3_netpoll(struct net_device *netdev)
 {
 	struct vmxnet3_adapter *adapter = netdev_priv(netdev);
-	int i;
 
 	switch (adapter->intr.type) {
-	case VMXNET3_IT_MSIX:
+#ifdef CONFIG_PCI_MSI
+	case VMXNET3_IT_MSIX: {
+		int i;
 		for (i = 0; i < adapter->num_rx_queues; i++)
 			vmxnet3_msix_rx(0, &adapter->rx_queue[i]);
 		break;
+	}
+#endif
 	case VMXNET3_IT_MSI:
 	default:
 		vmxnet3_intr(0, adapter->netdev);
maintainer Applied
#2 lore raw
In reply to Arnd Bergmann

From: Arnd Bergmann <[email protected]>
Date: Thu, 13 Mar 2014 10:44:34 +0100

Quoted 20 lines

Since commit d25f06ea466e "vmxnet3: fix netpoll race condition", the vmxnet3 driver fails to build when CONFIG_PCI_MSI is disabled, because it unconditionally references the vmxnet3_msix_rx() function.

To fix this, use the same #ifdef in the caller that exists around the function definition.

Cc Neil Horman <[email protected]>
Cc Shreyas Bhatewara <[email protected]>
Cc "VMware, Inc." <[email protected]>
Cc "David S. Miller" <[email protected]>

---
Found this during randconfig testing on ARM. Most of the time when I report network driver problems, they get fixed in the netdev tree before I even find them, but since this is for a patch marked "stable", I made a proper patch anyway.

Quoted 3 lines

Please ignore if this is already a known problem, otherwise make sure the original patch doesn't get backported without addressing this issue first.

Applied, and queued up for -stable, thanks.

#3 lore raw
In reply to Arnd Bergmann

Hello.

Quoted 29 lines · Arnd Bergmann

Since commit d25f06ea466e "vmxnet3: fix netpoll race condition", the vmxnet3 driver fails to build when CONFIG_PCI_MSI is disabled, because it unconditionally references the vmxnet3_msix_rx() function.

To fix this, use the same #ifdef in the caller that exists around the function definition.

Cc Neil Horman <[email protected]>
Cc Shreyas Bhatewara <[email protected]>
Cc "VMware, Inc." <[email protected]>
Cc "David S. Miller" <[email protected]>

---
Found this during randconfig testing on ARM. Most of the time when I report network driver problems, they get fixed in the netdev tree before I even find them, but since this is for a patch marked "stable", I made a proper patch anyway.

Please ignore if this is already a known problem, otherwise make sure the original patch doesn't get backported without addressing this issue first.

drivers/net/vmxnet3/vmxnet3_drv.c +0 -0
index cbd898f..28965ad 100644

drivers/net/vmxnet3/vmxnet3_drv.c static void · line 1768

Quoted 10 lines
drivers/net/vmxnet3/vmxnet3_drv.c +3 -2
@@ -1761,13 +1761,16 @@ static void
  vmxnet3_netpoll(struct net_device *netdev)
  {
  	struct vmxnet3_adapter *adapter = netdev_priv(netdev);
-	int i;
 
  	switch (adapter->intr.type) {
-	case VMXNET3_IT_MSIX:
+#ifdef CONFIG_PCI_MSI
+	case VMXNET3_IT_MSIX: {
+		int i;

This file's coding style assumes empty line after declaration, so does the
networking coding style in general.

drivers/net/vmxnet3/vmxnet3_drv.c static void · line 1776

Quoted 8 lines
drivers/net/vmxnet3/vmxnet3_drv.c +2 -0
  		for (i = 0; i < adapter->num_rx_queues; i++)
  			vmxnet3_msix_rx(0, &adapter->rx_queue[i]);
  		break;
+	}
+#endif
  	case VMXNET3_IT_MSI:
  	default:
  		vmxnet3_intr(0, adapter->netdev);

WBR, Sergei