* [PATCH v3 0/3] net: use vmalloc_array() to simplify code
@ 2025-08-16 9:06 Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 1/3] eth: intel: " Qianfeng Rong
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Qianfeng Rong @ 2025-08-16 9:06 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman,
Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Qianfeng Rong,
moderated list:INTEL ETHERNET DRIVERS,
open list:NETWORKING DRIVERS, open list,
open list:NETRONOME ETHERNET DRIVERS,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
Remove array_size() calls and replace vmalloc() with vmalloc_array() to
simplify the code and maintain consistency with existing kmalloc_array()
usage.
vmalloc_array() is also optimized better, resulting in less instructions
being used [1].
[1]: https://lore.kernel.org/lkml/abc66ec5-85a4-47e1-9759-2f60ab111971@vivo.com/
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
---
v2: Submit wireless patches separately and modified the commit message
and subject prefix.
v3: Fix -Wcalloc-transposed-args warning in nfp_flower_metadata_init()
by correcting argument order in vmalloc_array() calls (swap count
and sizeof arguments).
---
Qianfeng Rong (3):
eth: intel: use vmalloc_array() to simplify code
nfp: flower: use vmalloc_array() to simplify code
ppp: use vmalloc_array() to simplify code
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 +++---
drivers/net/ethernet/netronome/nfp/flower/metadata.c | 4 ++--
drivers/net/ppp/bsd_comp.c | 4 ++--
7 files changed, 17 insertions(+), 17 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/3] eth: intel: use vmalloc_array() to simplify code
2025-08-16 9:06 [PATCH v3 0/3] net: use vmalloc_array() to simplify code Qianfeng Rong
@ 2025-08-16 9:06 ` Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 2/3] nfp: flower: " Qianfeng Rong
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Qianfeng Rong @ 2025-08-16 9:06 UTC (permalink / raw)
To: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Alexei Starovoitov,
Daniel Borkmann, Jesper Dangaard Brouer, John Fastabend,
Stanislav Fomichev, moderated list:INTEL ETHERNET DRIVERS,
open list:NETWORKING DRIVERS, open list,
open list:XDP (eXpress Data Path):Keyword:(?:b|_)xdp(?:b|_)
Cc: Qianfeng Rong
Remove array_size() calls and replace vmalloc() with vmalloc_array() to
simplify the code and maintain consistency with existing kmalloc_array()
usage.
vmalloc_array() is also optimized better, resulting in less instructions
being used.
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.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;
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/3] nfp: flower: use vmalloc_array() to simplify code
2025-08-16 9:06 [PATCH v3 0/3] net: use vmalloc_array() to simplify code Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 1/3] eth: intel: " Qianfeng Rong
@ 2025-08-16 9:06 ` Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 3/3] ppp: " Qianfeng Rong
2025-08-19 1:00 ` [PATCH v3 0/3] net: " patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Qianfeng Rong @ 2025-08-16 9:06 UTC (permalink / raw)
To: Jakub Kicinski, Simon Horman, Andrew Lunn, David S. Miller,
Eric Dumazet, Paolo Abeni, Qianfeng Rong,
open list:NETRONOME ETHERNET DRIVERS,
open list:NETWORKING DRIVERS, open list
Remove array_size() calls and replace vmalloc() with vmalloc_array() in
nfp_flower_metadata_init(). vmalloc_array() is also optimized better,
resulting in less instructions being used.
Place 'NFP_FL_STATS_ELEM_RS' with the sizeof() parameter as the second
argument to vmalloc_array() to avoid -Wcalloc-transposed-args compilation
warnings.
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
---
drivers/net/ethernet/netronome/nfp/flower/metadata.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/netronome/nfp/flower/metadata.c b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
index 80e4675582bf..dde60c4572fa 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/metadata.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/metadata.c
@@ -564,8 +564,8 @@ int nfp_flower_metadata_init(struct nfp_app *app, u64 host_ctx_count,
/* Init ring buffer and unallocated stats_ids. */
priv->stats_ids.free_list.buf =
- vmalloc(array_size(NFP_FL_STATS_ELEM_RS,
- priv->stats_ring_size));
+ vmalloc_array(priv->stats_ring_size,
+ NFP_FL_STATS_ELEM_RS);
if (!priv->stats_ids.free_list.buf)
goto err_free_last_used;
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 3/3] ppp: use vmalloc_array() to simplify code
2025-08-16 9:06 [PATCH v3 0/3] net: use vmalloc_array() to simplify code Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 1/3] eth: intel: " Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 2/3] nfp: flower: " Qianfeng Rong
@ 2025-08-16 9:06 ` Qianfeng Rong
2025-08-19 1:00 ` [PATCH v3 0/3] net: " patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: Qianfeng Rong @ 2025-08-16 9:06 UTC (permalink / raw)
To: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Qianfeng Rong, open list:NETWORKING DRIVERS,
open list
Remove array_size() calls and replace vmalloc() with vmalloc_array() in
bsd_alloc().
vmalloc_array() is also optimized better, resulting in less instructions
being used.
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
---
drivers/net/ppp/bsd_comp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ppp/bsd_comp.c b/drivers/net/ppp/bsd_comp.c
index 55954594e157..f385b759d5cf 100644
--- a/drivers/net/ppp/bsd_comp.c
+++ b/drivers/net/ppp/bsd_comp.c
@@ -406,7 +406,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp)
* Allocate space for the dictionary. This may be more than one page in
* length.
*/
- db->dict = vmalloc(array_size(hsize, sizeof(struct bsd_dict)));
+ db->dict = vmalloc_array(hsize, sizeof(struct bsd_dict));
if (!db->dict)
{
bsd_free (db);
@@ -425,7 +425,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp)
*/
else
{
- db->lens = vmalloc(array_size(sizeof(db->lens[0]), (maxmaxcode + 1)));
+ db->lens = vmalloc_array(maxmaxcode + 1, sizeof(db->lens[0]));
if (!db->lens)
{
bsd_free (db);
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 0/3] net: use vmalloc_array() to simplify code
2025-08-16 9:06 [PATCH v3 0/3] net: use vmalloc_array() to simplify code Qianfeng Rong
` (2 preceding siblings ...)
2025-08-16 9:06 ` [PATCH v3 3/3] ppp: " Qianfeng Rong
@ 2025-08-19 1:00 ` patchwork-bot+netdevbpf
3 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-08-19 1:00 UTC (permalink / raw)
To: Qianfeng Rong
Cc: anthony.l.nguyen, przemyslaw.kitszel, andrew+netdev, davem,
edumazet, kuba, pabeni, horms, ast, daniel, hawk, john.fastabend,
sdf, intel-wired-lan, netdev, linux-kernel, oss-drivers, bpf
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Sat, 16 Aug 2025 17:06:51 +0800 you wrote:
> Remove array_size() calls and replace vmalloc() with vmalloc_array() to
> simplify the code and maintain consistency with existing kmalloc_array()
> usage.
>
> vmalloc_array() is also optimized better, resulting in less instructions
> being used [1].
>
> [...]
Here is the summary with links:
- [v3,1/3] eth: intel: use vmalloc_array() to simplify code
https://git.kernel.org/netdev/net-next/c/4490d075c2d9
- [v3,2/3] nfp: flower: use vmalloc_array() to simplify code
https://git.kernel.org/netdev/net-next/c/fce214586f99
- [v3,3/3] ppp: use vmalloc_array() to simplify code
https://git.kernel.org/netdev/net-next/c/dad3280591ab
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-08-19 1:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-16 9:06 [PATCH v3 0/3] net: use vmalloc_array() to simplify code Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 1/3] eth: intel: " Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 2/3] nfp: flower: " Qianfeng Rong
2025-08-16 9:06 ` [PATCH v3 3/3] ppp: " Qianfeng Rong
2025-08-19 1:00 ` [PATCH v3 0/3] net: " patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).