igb_uio: fix build on Linux 5.3 for implicit fall through

Message ID 20190729123216.64601-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series igb_uio: fix build on Linux 5.3 for implicit fall through |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit July 29, 2019, 12:32 p.m. UTC
  build error:
.../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:
   In function ‘igbuio_pci_enable_interrupts’:
   .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:230:6:
   error: this statement may fall through
   [-Werror=implicit-fallthrough=]
  230 |   if (pci_alloc_irq_vectors(udev->pdev, 1, 1, ....
.../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:240:2:
   note: here
  240 |  case RTE_INTR_MODE_MSI:
      |  ^~~~

The build error is caused by Linux kernel commit in 5.3 that enables the
"-Wimplicit-fallthrough=3" gcc flag.
Commit a035d552a93b ("Makefile: Globally enable fall-through warning")

To fix the error, either a gcc attribute can be provided [1] or a code
comment with some defined syntax need to be provided [2], since there is
already comments, updated them slightly to match the required syntax to
fix the build error.

[1]
"__attribute__ ((fallthrough));"

[2]
[ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?

Cc: stable@dpdk.org

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 kernel/linux/igb_uio/igb_uio.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Thomas Monjalon July 29, 2019, 8:01 p.m. UTC | #1
29/07/2019 14:32, Ferruh Yigit:
> build error:
> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:
>    In function ‘igbuio_pci_enable_interrupts’:
>    .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:230:6:
>    error: this statement may fall through
>    [-Werror=implicit-fallthrough=]
>   230 |   if (pci_alloc_irq_vectors(udev->pdev, 1, 1, ....
> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:240:2:
>    note: here
>   240 |  case RTE_INTR_MODE_MSI:
>       |  ^~~~
> 
> The build error is caused by Linux kernel commit in 5.3 that enables the
> "-Wimplicit-fallthrough=3" gcc flag.
> Commit a035d552a93b ("Makefile: Globally enable fall-through warning")
> 
> To fix the error, either a gcc attribute can be provided [1] or a code
> comment with some defined syntax need to be provided [2], since there is
> already comments, updated them slightly to match the required syntax to
> fix the build error.
> 
> [1]
> "__attribute__ ((fallthrough));"
> 
> [2]
> [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
> fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?
> 
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied, thanks
  
Luca Boccassi Sept. 24, 2019, 6:25 p.m. UTC | #2
On Mon, 2019-07-29 at 13:32 +0100, Ferruh Yigit wrote:
> build error:
> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:
>    In function ‘igbuio_pci_enable_interrupts’:
>    .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:230:6:
>    error: this statement may fall through
>    [-Werror=implicit-fallthrough=]
>   230 |   if (pci_alloc_irq_vectors(udev->pdev, 1, 1, ....
> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:240:2:
>    note: here
>   240 |  case RTE_INTR_MODE_MSI:
>       |  ^~~~
> 
> The build error is caused by Linux kernel commit in 5.3 that enables
> the
> "-Wimplicit-fallthrough=3" gcc flag.
> Commit a035d552a93b ("Makefile: Globally enable fall-through
> warning")
> 
> To fix the error, either a gcc attribute can be provided [1] or a
> code
> comment with some defined syntax need to be provided [2], since there
> is
> already comments, updated them slightly to match the required syntax
> to
> fix the build error.
> 
> [1]
> "__attribute__ ((fallthrough));"
> 
> [2]
> [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
> fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?
> 
> Cc: 
> stable@dpdk.org
> 
> 
> Signed-off-by: Ferruh Yigit <
> ferruh.yigit@intel.com
> >
> ---
>  kernel/linux/igb_uio/igb_uio.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

Ferruh I'm including this in 17.11.7 since it fixes the build on a
number of new distros and it seems simple enough as it just updates the
comment for the compiler's benefit.

Let me know if there are any objections.
  
Ferruh Yigit Sept. 26, 2019, 7:56 a.m. UTC | #3
On 9/24/2019 7:25 PM, Luca Boccassi wrote:
> On Mon, 2019-07-29 at 13:32 +0100, Ferruh Yigit wrote:
>> build error:
>> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:
>>    In function ‘igbuio_pci_enable_interrupts’:
>>    .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:230:6:
>>    error: this statement may fall through
>>    [-Werror=implicit-fallthrough=]
>>   230 |   if (pci_alloc_irq_vectors(udev->pdev, 1, 1, ....
>> .../dpdk/build/build/kernel/linux/igb_uio/igb_uio.c:240:2:
>>    note: here
>>   240 |  case RTE_INTR_MODE_MSI:
>>       |  ^~~~
>>
>> The build error is caused by Linux kernel commit in 5.3 that enables
>> the
>> "-Wimplicit-fallthrough=3" gcc flag.
>> Commit a035d552a93b ("Makefile: Globally enable fall-through
>> warning")
>>
>> To fix the error, either a gcc attribute can be provided [1] or a
>> code
>> comment with some defined syntax need to be provided [2], since there
>> is
>> already comments, updated them slightly to match the required syntax
>> to
>> fix the build error.
>>
>> [1]
>> "__attribute__ ((fallthrough));"
>>
>> [2]
>> [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )?
>> fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)?
>>
>> Cc: 
>> stable@dpdk.org
>>
>>
>> Signed-off-by: Ferruh Yigit <
>> ferruh.yigit@intel.com
>>>
>> ---
>>  kernel/linux/igb_uio/igb_uio.c | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> Ferruh I'm including this in 17.11.7 since it fixes the build on a
> number of new distros and it seems simple enough as it just updates the
> comment for the compiler's benefit.
> 
> Let me know if there are any objections.
> 

+1 to include it, as you said it is simple, thanks.
  

Patch

diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
index 3cf394bdf..039f5a5f6 100644
--- a/kernel/linux/igb_uio/igb_uio.c
+++ b/kernel/linux/igb_uio/igb_uio.c
@@ -236,7 +236,7 @@  igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
 		}
 #endif
 
-	/* fall back to MSI */
+	/* falls through - to MSI */
 	case RTE_INTR_MODE_MSI:
 #ifndef HAVE_ALLOC_IRQ_VECTORS
 		if (pci_enable_msi(udev->pdev) == 0) {
@@ -255,7 +255,7 @@  igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
 			break;
 		}
 #endif
-	/* fall back to INTX */
+	/* falls through - to INTX */
 	case RTE_INTR_MODE_LEGACY:
 		if (pci_intx_mask_supported(udev->pdev)) {
 			dev_dbg(&udev->pdev->dev, "using INTX");
@@ -265,7 +265,7 @@  igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
 			break;
 		}
 		dev_notice(&udev->pdev->dev, "PCI INTX mask not supported\n");
-	/* fall back to no IRQ */
+	/* falls through - to no IRQ */
 	case RTE_INTR_MODE_NONE:
 		udev->mode = RTE_INTR_MODE_NONE;
 		udev->info.irq = UIO_IRQ_NONE;