kernel_samsung_a53x/drivers/net
Vladimir Oltean a78199809a net: dpaa: avoid on-stack arrays of NR_CPUS elements
[ Upstream commit 555a05d84ca2c587e2d4777006e2c2fb3dfbd91d ]

The dpaa-eth driver is written for PowerPC and Arm SoCs which have 1-24
CPUs. It depends on CONFIG_NR_CPUS having a reasonably small value in
Kconfig. Otherwise, there are 2 functions which allocate on-stack arrays
of NR_CPUS elements, and these can quickly explode in size, leading to
warnings such as:

  drivers/net/ethernet/freescale/dpaa/dpaa_eth.c:3280:12: warning:
  stack frame size (16664) exceeds limit (2048) in 'dpaa_eth_probe' [-Wframe-larger-than]

The problem is twofold:
- Reducing the array size to the boot-time num_possible_cpus() (rather
  than the compile-time NR_CPUS) creates a variable-length array,
  which should be avoided in the Linux kernel.
- Using NR_CPUS as an array size makes the driver blow up in stack
  consumption with generic, as opposed to hand-crafted, .config files.

A simple solution is to use dynamic allocation for num_possible_cpus()
elements (aka a small number determined at runtime).

Link: https://lore.kernel.org/all/202406261920.l5pzM1rj-lkp@intel.com/
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
Acked-by: Madalin Bucur <madalin.bucur@oss.nxp.com>
Link: https://patch.msgid.link/20240713225336.1746343-2-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-01-19 00:10:00 +01:00
..
appletalk
arcnet
bonding bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL 2025-01-02 17:01:17 +01:00
caif
can can: sun4i_can: sun4i_can_err(): fix {rx,tx}_errors statistics 2024-12-17 13:24:25 +01:00
dropdump
dsa Revert "net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports" 2024-11-24 00:23:56 +01:00
ethernet net: dpaa: avoid on-stack arrays of NR_CPUS elements 2025-01-19 00:10:00 +01:00
fddi
fjes
hamradio
hippi
hyperv
ieee802154 Revert "ieee802154: Fix build error" 2024-11-24 00:23:12 +01:00
ipa
ipvlan
mdio
netdevsim netdevsim: prevent bad user input in nsim_dev_health_break_write() 2025-01-15 16:29:41 +01:00
pcs
phy net: phy: ti: take into account all possible interrupt sources 2024-11-30 02:33:27 +01:00
plip
ppp Revert "ppp: fix ppp_async_encode() illegal access" 2024-11-24 00:22:56 +01:00
slip Revert "slip: make slhc_remember() more robust against malicious packets" 2024-11-24 00:22:55 +01:00
team team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL 2025-01-02 17:01:17 +01:00
usb usbnet: ipheth: race between ipheth_close and error handling 2025-01-19 00:09:59 +01:00
vmxnet3
vxlan
wan
wimax
wireguard
wireless net: wireless: scsc: Add support for NL80211_WPA_VERSION_3 2025-01-16 23:19:27 +01:00
xen-netback Revert "net/xen-netback: prevent UAF in xenvif_flush_hash()" 2024-11-24 00:23:10 +01:00
bareudp.c Revert "bareudp: Fix device stats updates." 2024-11-24 00:23:41 +01:00
dummy.c net: bonding, dummy, ifb, team: advertise NETIF_F_GSO_SOFTWARE 2025-01-02 17:01:17 +01:00
eql.c
geneve.c geneve: do not assume mac header is set in geneve_xmit_skb() 2024-12-17 13:24:27 +01:00
gtp.c Revert "gtp: fix a potential NULL pointer dereference" 2024-11-24 00:23:49 +01:00
ifb.c net: bonding, dummy, ifb, team: advertise NETIF_F_GSO_SOFTWARE 2025-01-02 17:01:17 +01:00
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c
virtio_net.c Revert "virtio_net: Fix napi_skb_cache_put warning" 2024-11-24 00:23:46 +01:00
vrf.c Revert "net: vrf: determine the dst using the original ifindex for multicast" 2024-11-24 00:22:54 +01:00
vsockmon.c
xen-netfront.c xen/netfront: fix crash when removing device 2025-01-02 17:01:18 +01:00