linux-stable/drivers/net
Duoming Zhou c0955bf957 ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
The function neigh_timer_handler() is a timer handler that runs in an
atomic context. When used by rocker, neigh_timer_handler() calls
"kzalloc(.., GFP_KERNEL)" that may sleep. As a result, the sleep in
atomic context bug will happen. One of the processes is shown below:

ofdpa_fib4_add()
 ...
 neigh_add_timer()

(wait a timer)

neigh_timer_handler()
 neigh_release()
  neigh_destroy()
   rocker_port_neigh_destroy()
    rocker_world_port_neigh_destroy()
     ofdpa_port_neigh_destroy()
      ofdpa_port_ipv4_neigh()
       kzalloc(sizeof(.., GFP_KERNEL) //may sleep

This patch changes the gfp_t parameter of kzalloc() from GFP_KERNEL to
GFP_ATOMIC in order to mitigate the bug.

Fixes: 00fc0c51e3 ("rocker: Change world_ops API and implementation to be switchdev independant")
Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-08-31 14:01:29 +01:00
..
appletalk
arcnet
bonding bonding: 3ad: make ad_ticks_per_sec a const 2022-08-22 18:30:24 -07:00
caif
can Including fixes from bluetooth, bpf, can and netfilter. 2022-08-11 13:45:37 -07:00
dsa net: dsa: xrs700x: Use irqsave variant for u64 stats update 2022-08-29 13:02:26 +01:00
ethernet ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler 2022-08-31 14:01:29 +01:00
fddi skfp/h: fix repeated words in comments 2022-08-12 11:20:29 +01:00
fjes
hamradio
hippi
hyperv
ieee802154 ieee802154: cc2520: add rc code in cc2520_tx() 2022-08-29 11:10:22 +02:00
ipa net: ipa: don't assume SMEM is page-aligned 2022-08-22 18:10:48 -07:00
ipvlan net: ipvtap - add __init/__exit annotations to module init/exit funcs 2022-08-23 15:45:53 +02:00
mctp
mdio
netdevsim net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
pcs Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-28 18:21:16 -07:00
phy net: phy: micrel: Make the GPIO to be non-exclusive 2022-08-30 22:49:50 -07:00
plip plip: avoid rcu debug splat 2022-08-09 12:16:02 -07:00
ppp
slip
team
usb r8152: add PID for the Lenovo OneLink+ Dock 2022-08-27 16:35:41 +01:00
vmxnet3 vmxnet3: do not reschedule napi for rx processing 2022-07-29 12:11:23 +01:00
vxlan vxlan: do not use RT_TOS for IPv6 flowlabel 2022-08-09 22:19:20 -07:00
wan
wireguard Char / Misc driver changes for 6.0-rc1 2022-08-04 11:05:48 -07:00
wireless Including fixes from bluetooth, bpf, can and netfilter. 2022-08-11 13:45:37 -07:00
wwan
xen-netback
amt.c amt: fix typo in comment 2022-07-28 22:21:51 -07:00
bareudp.c
dummy.c
eql.c
geneve.c geneve: do not use RT_TOS for IPv6 flowlabel 2022-08-09 22:19:20 -07:00
gtp.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c Revert "net: macsec: update SCI upon MAC address change." 2022-08-19 16:50:36 -07:00
macvlan.c
macvtap.c
Makefile
mdio.c
mhi_net.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c net: sungem_phy: Add of_node_put() for reference returned by of_get_parent() 2022-07-21 19:04:19 -07:00
tap.c net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null 2022-08-05 08:56:35 +01:00
thunderbolt.c
tun.c
veth.c Revert "veth: Add updating of trans_start" 2022-08-03 19:20:13 -07:00
virtio_net.c Including fixes from netfilter. 2022-08-18 19:37:15 -07:00
vrf.c
vsockmon.c
xen-netfront.c