lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ