> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Qianfeng Rong
> Sent: Tuesday, August 12, 2025 3:32 PM
> To: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; Andrew Lunn
> <[email protected]>; David S. Miller <[email protected]>; Eric
> Dumazet <[email protected]>; Jakub Kicinski <[email protected]>; Paolo
> Abeni <[email protected]>; Alexei Starovoitov <[email protected]>; Daniel
> Borkmann <[email protected]>; Jesper Dangaard Brouer
> <[email protected]>; John Fastabend <[email protected]>;
> Stanislav Fomichev <[email protected]>; moderated list:INTEL ETHERNET
> DRIVERS <[email protected]>; open list:NETWORKING
> DRIVERS <[email protected]>; open list <linux-
> [email protected]>; open list:XDP (eXpress Data
> Path):Keyword:(?:\b|_)xdp(?:\b|_) <[email protected]>
> Cc: Qianfeng Rong <[email protected]>
> Subject: [Intel-wired-lan] [PATCH 1/5] ethtool: use vmalloc_array() to
> simplify code
>
> Remove array_size() calls and replace vmalloc() with vmalloc_array()
> to simplify the code and maintain consistency with existing
> kmalloc_array() usage.
>
> Signed-off-by: Qianfeng Rong <[email protected]>
Reviewed-by: Aleksandr Loktionov <[email protected]>
> ---
> 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;
> --
> 2.34.1