79 lines
2.4 KiB
Diff
79 lines
2.4 KiB
Diff
From e68a705cc5dc3d1333bbcd722fe4e9a6ba3ee648 Mon Sep 17 00:00:00 2001
|
|
From: Ferruh Yigit <ferruh.yigit@intel.com>
|
|
Date: Thu, 16 Dec 2021 12:03:49 +0000
|
|
Subject: [PATCH] linux/igb_uio: fix build for switch fall through
|
|
|
|
Linux is using '-Wimplicit-fallthrough=5' compiler option, which doesn't
|
|
take any fall through comments into account but only uses compiler
|
|
'fallthrough' attribute to document fall through action is intended.
|
|
|
|
"falls through" comment was used in the code which is causing a build
|
|
error now, this patch converts comment to the 'fallthrough' macro
|
|
defined in the Linux.
|
|
|
|
To cover the case where an old Linux version doesn't have the macro,
|
|
defined it in the compatibility header too.
|
|
|
|
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
|
|
---
|
|
linux/igb_uio/compat.h | 14 ++++++++++++++
|
|
linux/igb_uio/igb_uio.c | 6 +++---
|
|
2 files changed, 17 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/kernel/linux/igb_uio/compat.h b/kernel/linux/igb_uio/compat.h
|
|
index 8dbb896..71172f4 100644
|
|
--- a/kernel/linux/igb_uio/compat.h
|
|
+++ b/kernel/linux/igb_uio/compat.h
|
|
@@ -152,3 +152,17 @@ static inline bool igbuio_kernel_is_locked_down(void)
|
|
return false;
|
|
#endif
|
|
}
|
|
+
|
|
+#ifndef fallthrough
|
|
+
|
|
+#ifndef __has_attribute
|
|
+#define __has_attribute(x) 0
|
|
+#endif
|
|
+
|
|
+#if __has_attribute(__fallthrough__)
|
|
+#define fallthrough __attribute__((__fallthrough__))
|
|
+#else
|
|
+#define fallthrough do {} while (0) /* fallthrough */
|
|
+#endif
|
|
+
|
|
+#endif
|
|
diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
|
|
index ea439d1..33e0e02 100644
|
|
--- a/kernel/linux/igb_uio/igb_uio.c
|
|
+++ b/kernel/linux/igb_uio/igb_uio.c
|
|
@@ -250,7 +250,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
|
|
}
|
|
#endif
|
|
|
|
- /* falls through - to MSI */
|
|
+ fallthrough;
|
|
case RTE_INTR_MODE_MSI:
|
|
#ifndef HAVE_ALLOC_IRQ_VECTORS
|
|
if (pci_enable_msi(udev->pdev) == 0) {
|
|
@@ -269,7 +269,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
|
|
break;
|
|
}
|
|
#endif
|
|
- /* falls through - to INTX */
|
|
+ fallthrough;
|
|
case RTE_INTR_MODE_LEGACY:
|
|
if (pci_intx_mask_supported(udev->pdev)) {
|
|
dev_dbg(&udev->pdev->dev, "using INTX");
|
|
@@ -279,7 +279,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
|
|
break;
|
|
}
|
|
dev_notice(&udev->pdev->dev, "PCI INTX mask not supported\n");
|
|
- /* falls through - to no IRQ */
|
|
+ fallthrough;
|
|
case RTE_INTR_MODE_NONE:
|
|
udev->mode = RTE_INTR_MODE_NONE;
|
|
udev->info.irq = UIO_IRQ_NONE;
|
|
--
|
|
2.23.0
|
|
|