Message ID | 20170926184827.GA3512@felix-thinkpad.cavium.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] liquidio: fix format truncation warning reported by gcc 7.1.1 | expand |
From: Felix Manlunas > Sent: 26 September 2017 19:48 > gcc 7.1.1 with -Wformat-truncation reports these warnings: > > drivers/net/ethernet/cavium/liquidio/lio_core.c: In function `octeon_setup_interrupt': > drivers/net/ethernet/cavium/liquidio/lio_core.c:1003:41: warning: `%u' directive output may be > truncated writing between 1 and 10 bytes into a region of size between 0 and 13 [-Wformat-truncation=] > INTRNAMSIZ, "LiquidIO%u-pf%u-rxtx-%u", ... > Fix them by changing the type of the "i" local variable from int to short. That probably adds pointless code bloat by forcing the compiler to keep masking the value with 0xffff after every arithmetic operation. About the only architecture that doesn't suffer the penalty is x86. Until the compiler can correctly track the domain of values (and be given hints about the domains) this warning is, IMHO, OTT. David
From: Felix Manlunas <felix.manlunas@cavium.com> Date: Tue, 26 Sep 2017 11:48:27 -0700 > From: Satanand Burla <satananda.burla@cavium.com> > > gcc 7.1.1 with -Wformat-truncation reports these warnings: > > drivers/net/ethernet/cavium/liquidio/lio_core.c: In function `octeon_setup_interrupt': > drivers/net/ethernet/cavium/liquidio/lio_core.c:1003:41: warning: `%u' directive output may be truncated writing between 1 and 10 bytes into a region of size between 0 and 13 [-Wformat-truncation=] > INTRNAMSIZ, "LiquidIO%u-pf%u-rxtx-%u", > ^~ Please just increase INTRNAMSIZ as needed. Thanks.
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index 23f6b60..55c5d44 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -899,11 +899,12 @@ int octeon_setup_interrupt(struct octeon_device *oct, u32 num_ioqs) { struct msix_entry *msix_entries; char *queue_irq_names = NULL; - int i, num_interrupts = 0; + int num_interrupts = 0; int num_alloc_ioq_vectors; char *aux_irq_name = NULL; int num_ioq_vectors; int irqret, err; + short i; oct->num_msix_irqs = num_ioqs; if (oct->msix_on) {