Message ID | 20241016090647.691022-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | abb7c98b99f62d30bb070a8dfe08b1033b133c0c |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2,1/1] tg3: Increase buffer size for IRQ label | expand |
On Wed, Oct 16, 2024 at 2:06 AM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > GCC is not happy with the current code, e.g.: > > .../tg3.c:11313:37: error: ‘-txrx-’ directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Werror=format-truncation=] > 11313 | "%s-txrx-%d", tp->dev->name, irq_num); > | ^~~~~~ > .../tg3.c:11313:34: note: using the range [-2147483648, 2147483647] for directive argument > 11313 | "%s-txrx-%d", tp->dev->name, irq_num); > > When `make W=1` is supplied, this prevents kernel building. Fix it by > increasing the buffer size for IRQ label and use sizeoF() instead of > hard coded constants. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Thanks. Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Hello: This patch was applied to netdev/net-next.git (main) by Andrew Lunn <andrew@lunn.ch>: On Wed, 16 Oct 2024 12:05:54 +0300 you wrote: > GCC is not happy with the current code, e.g.: > > .../tg3.c:11313:37: error: ‘-txrx-’ directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Werror=format-truncation=] > 11313 | "%s-txrx-%d", tp->dev->name, irq_num); > | ^~~~~~ > .../tg3.c:11313:34: note: using the range [-2147483648, 2147483647] for directive argument > 11313 | "%s-txrx-%d", tp->dev->name, irq_num); > > [...] Here is the summary with links: - [net-next,v2,1/1] tg3: Increase buffer size for IRQ label https://git.kernel.org/netdev/net-next/c/abb7c98b99f6 You are awesome, thank you!
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 378815917741..675178ab77b8 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -11309,18 +11309,17 @@ static int tg3_request_irq(struct tg3 *tp, int irq_num) else { name = &tnapi->irq_lbl[0]; if (tnapi->tx_buffers && tnapi->rx_rcb) - snprintf(name, IFNAMSIZ, + snprintf(name, sizeof(tnapi->irq_lbl), "%s-txrx-%d", tp->dev->name, irq_num); else if (tnapi->tx_buffers) - snprintf(name, IFNAMSIZ, + snprintf(name, sizeof(tnapi->irq_lbl), "%s-tx-%d", tp->dev->name, irq_num); else if (tnapi->rx_rcb) - snprintf(name, IFNAMSIZ, + snprintf(name, sizeof(tnapi->irq_lbl), "%s-rx-%d", tp->dev->name, irq_num); else - snprintf(name, IFNAMSIZ, + snprintf(name, sizeof(tnapi->irq_lbl), "%s-%d", tp->dev->name, irq_num); - name[IFNAMSIZ-1] = 0; } if (tg3_flag(tp, USING_MSI) || tg3_flag(tp, USING_MSIX)) { diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h index cf1b2b123c7e..b473f8014d9c 100644 --- a/drivers/net/ethernet/broadcom/tg3.h +++ b/drivers/net/ethernet/broadcom/tg3.h @@ -3033,7 +3033,7 @@ struct tg3_napi { dma_addr_t rx_rcb_mapping; dma_addr_t tx_desc_mapping; - char irq_lbl[IFNAMSIZ]; + char irq_lbl[IFNAMSIZ + 6 + 10]; /* name + "-txrx-" + %d */ unsigned int irq_vec; };
GCC is not happy with the current code, e.g.: .../tg3.c:11313:37: error: ‘-txrx-’ directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Werror=format-truncation=] 11313 | "%s-txrx-%d", tp->dev->name, irq_num); | ^~~~~~ .../tg3.c:11313:34: note: using the range [-2147483648, 2147483647] for directive argument 11313 | "%s-txrx-%d", tp->dev->name, irq_num); When `make W=1` is supplied, this prevents kernel building. Fix it by increasing the buffer size for IRQ label and use sizeoF() instead of hard coded constants. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- v2: don't move the field to the stack (Jakub) drivers/net/ethernet/broadcom/tg3.c | 9 ++++----- drivers/net/ethernet/broadcom/tg3.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-)