[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <af057e48-f428-4c34-8991-99959edbabd2@molgen.mpg.de>
Date: Tue, 12 Aug 2025 18:34:12 +0200
From: Paul Menzel <pmenzel@...gen.mpg.de>
To: Qianfeng Rong <rongqianfeng@...o.com>
Cc: Tony Nguyen <anthony.l.nguyen@...el.com>,
Przemek Kitszel <przemyslaw.kitszel@...el.com>,
Andrew Lunn <andrew+netdev@...n.ch>, "David S. Miller"
<davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Alexei Starovoitov <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>,
Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
Stanislav Fomichev <sdf@...ichev.me>, intel-wired-lan@...ts.osuosl.org,
netdev@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
bpf@...r.kernel.org
Subject: Re: [Intel-wired-lan] [PATCH 1/5] ethtool: use vmalloc_array() to
simplify code
Dear Qianfeng,
Thank you for your patch.
Am 12.08.25 um 15:32 schrieb Qianfeng Rong:
> Remove array_size() calls and replace vmalloc() with vmalloc_array() to
> simplify the code and maintain consistency with existing kmalloc_array()
> usage.
You could build it without and with your patch and look if the assembler
code changes.
> Signed-off-by: Qianfeng Rong <rongqianfeng@...o.com>
> ---
> drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 2 +-
> drivers/net/ethernet/intel/igb/igb_ethtool.c | 8 ++++----
> drivers/net/ethernet/intel/igc/igc_ethtool.c | 8 ++++----
> drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 2 +-
> drivers/net/ethernet/intel/ixgbevf/ethtool.c | 6 +++---
> 5 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> index 1954a04460d1..bf2029144c1d 100644
> --- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> +++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
> @@ -560,7 +560,7 @@ static int fm10k_set_ringparam(struct net_device *netdev,
>
> /* allocate temporary buffer to store rings in */
> i = max_t(int, interface->num_tx_queues, interface->num_rx_queues);
> - temp_ring = vmalloc(array_size(i, sizeof(struct fm10k_ring)));
> + temp_ring = vmalloc_array(i, sizeof(struct fm10k_ring));
>
> if (!temp_ring) {
> err = -ENOMEM;
> diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
> index 92ef33459aec..51d5cb6599ed 100644
> --- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
> +++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
> @@ -920,11 +920,11 @@ static int igb_set_ringparam(struct net_device *netdev,
> }
>
> if (adapter->num_tx_queues > adapter->num_rx_queues)
> - temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
> - adapter->num_tx_queues));
> + temp_ring = vmalloc_array(adapter->num_tx_queues,
> + sizeof(struct igb_ring));
> else
> - temp_ring = vmalloc(array_size(sizeof(struct igb_ring),
> - adapter->num_rx_queues));
> + temp_ring = vmalloc_array(adapter->num_rx_queues,
> + sizeof(struct igb_ring));
>
> if (!temp_ring) {
> err = -ENOMEM;
> diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
> index ecb35b693ce5..f3e7218ba6f3 100644
> --- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
> +++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
> @@ -627,11 +627,11 @@ igc_ethtool_set_ringparam(struct net_device *netdev,
> }
>
> if (adapter->num_tx_queues > adapter->num_rx_queues)
> - temp_ring = vmalloc(array_size(sizeof(struct igc_ring),
> - adapter->num_tx_queues));
> + temp_ring = vmalloc_array(adapter->num_tx_queues,
> + sizeof(struct igc_ring));
> else
> - temp_ring = vmalloc(array_size(sizeof(struct igc_ring),
> - adapter->num_rx_queues));
> + temp_ring = vmalloc_array(adapter->num_rx_queues,
> + sizeof(struct igc_ring));
>
> if (!temp_ring) {
> err = -ENOMEM;
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> index 25c3a09ad7f1..2c5d774f1ec1 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> @@ -1278,7 +1278,7 @@ static int ixgbe_set_ringparam(struct net_device *netdev,
> /* allocate temporary buffer to store rings in */
> i = max_t(int, adapter->num_tx_queues + adapter->num_xdp_queues,
> adapter->num_rx_queues);
> - temp_ring = vmalloc(array_size(i, sizeof(struct ixgbe_ring)));
> + temp_ring = vmalloc_array(i, sizeof(struct ixgbe_ring));
>
> if (!temp_ring) {
> err = -ENOMEM;
> diff --git a/drivers/net/ethernet/intel/ixgbevf/ethtool.c b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
> index 7ac53171b041..bebad564188e 100644
> --- a/drivers/net/ethernet/intel/ixgbevf/ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbevf/ethtool.c
> @@ -276,9 +276,9 @@ static int ixgbevf_set_ringparam(struct net_device *netdev,
> }
>
> if (new_tx_count != adapter->tx_ring_count) {
> - tx_ring = vmalloc(array_size(sizeof(*tx_ring),
> - adapter->num_tx_queues +
> - adapter->num_xdp_queues));
> + tx_ring = vmalloc_array(adapter->num_tx_queues +
> + adapter->num_xdp_queues,
> + sizeof(*tx_ring));
> if (!tx_ring) {
> err = -ENOMEM;
> goto clear_reset;
Reviewed-by: Paul Menzel <pmenzel@...gen.mpg.de>
Kind regards,
Paul
Powered by blists - more mailing lists