From ed130f099a6b0f842d3baaf9ed8738725a9323b2 Mon Sep 17 00:00:00 2001 From: Jon Hunter Date: Mon, 25 Sep 2023 16:51:01 +0100 Subject: [PATCH] net: nvethernet: Fix build for Linux v6.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Linux v6.4, commit 3948b05950fd ("net: introduce a config option to tweak MAX_SKB_FRAGS") added a kernel config option for MAX_SKB_FRAGS and change the type of the definition to integer. This causes the nvethernet driver build to fail and the following errors are seen ... drivers/net/ethernet/nvidia/nvethernet/ether_linux.c:5949:33: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘nveu32_t’ {aka ‘unsigned int’} [-Werror=format=] "invalid tx-frames, must be inrange %d to %ld", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/nvethernet/ethtool.c:950:28: error: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘nveu32_t’ {aka ‘unsigned int’} [-Werror=format=] "invalid tx-frames, must be in the range of" ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fix this by changing the type in the respective prints to integer. Note that his is also to make this change for kernel prior to Linux v6.4. Bug 4183168 Bug 4221847 Change-Id: Ibd9160ad08e65e0b85cae1cf4903075c31a1cd77 Signed-off-by: Jon Hunter Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2989002 Reviewed-by: Shanker Donthineni Reviewed-by: Revanth Kumar Uppala GVS: Gerrit_Virtual_Submit --- drivers/net/ethernet/nvidia/nvethernet/ether_linux.c | 6 +++++- drivers/net/ethernet/nvidia/nvethernet/ethtool.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c index 13d5087d..a81bddb1 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* Copyright (c) 2019-2023, NVIDIA CORPORATION. All rights reserved */ +// Copyright (c) 2019-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include @@ -5948,7 +5948,11 @@ static int ether_parse_dt(struct ether_priv_data *pdata) if (osi_dma->tx_frames > ETHER_TX_MAX_FRAME(osi_dma->tx_ring_sz) || osi_dma->tx_frames < ETHER_MIN_TX_COALESCE_FRAMES) { dev_err(dev, +#ifdef CONFIG_MAX_SKB_FRAGS + "invalid tx-frames, must be inrange %d to %d", +#else "invalid tx-frames, must be inrange %d to %ld", +#endif ETHER_MIN_TX_COALESCE_FRAMES, ETHER_TX_MAX_FRAME(osi_dma->tx_ring_sz)); return -EINVAL; diff --git a/drivers/net/ethernet/nvidia/nvethernet/ethtool.c b/drivers/net/ethernet/nvidia/nvethernet/ethtool.c index 61bc5392..28495c40 100644 --- a/drivers/net/ethernet/nvidia/nvethernet/ethtool.c +++ b/drivers/net/ethernet/nvidia/nvethernet/ethtool.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* Copyright (c) 2019-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved */ +// Copyright (c) 2019-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include @@ -950,7 +950,11 @@ static int ether_set_coalesce(struct net_device *dev, (ec->tx_max_coalesced_frames < ETHER_MIN_TX_COALESCE_FRAMES)) { netdev_err(dev, "invalid tx-frames, must be in the range of" +#ifdef CONFIG_MAX_SKB_FRAGS + " %d to %d frames\n", ETHER_MIN_TX_COALESCE_FRAMES, +#else " %d to %ld frames\n", ETHER_MIN_TX_COALESCE_FRAMES, +#endif ETHER_TX_MAX_FRAME(osi_dma->tx_ring_sz)); return -EINVAL; } else {