linux/drivers/net
Vladimir Oltean ada2fee185 net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
rtnl_fdb_dump() has logic to split a dump of PF_BRIDGE neighbors into
multiple netlink skbs if the buffer provided by user space is too small
(one buffer will typically handle a few hundred FDB entries).

When the current buffer becomes full, nlmsg_put() in
dsa_slave_port_fdb_do_dump() returns -EMSGSIZE and DSA saves the index
of the last dumped FDB entry, returns to rtnl_fdb_dump() up to that
point, and then the dump resumes on the same port with a new skb, and
FDB entries up to the saved index are simply skipped.

Since dsa_slave_port_fdb_do_dump() is pointed to by the "cb" passed to
drivers, then drivers must check for the -EMSGSIZE error code returned
by it. Otherwise, when a netlink skb becomes full, DSA will no longer
save newly dumped FDB entries to it, but the driver will continue
dumping. So FDB entries will be missing from the dump.

Fix the broken backpressure by propagating the "cb" return code and
allow rtnl_fdb_dump() to restart the FDB dump with a new skb.

Fixes: ab335349b8 ("net: dsa: lan9303: Add port_fast_age and port_fdb_dump methods")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-08-10 13:17:22 +01:00
..
appletalk
arcnet
bonding bonding: fix build issue 2021-07-16 17:22:35 -07:00
caif Networking fixes for 5.14-rc2, including fixes from bpf and netfilter. 2021-07-14 09:24:32 -07:00
can can: m_can: m_can_set_bittiming(): fix setting M_CAN_DBTP register 2021-08-10 08:10:27 +02:00
dsa net: dsa: lan9303: fix broken backpressure in .port_fdb_dump 2021-08-10 13:17:22 +01:00
ethernet mlx5-fixes-2021-08-09 2021-08-10 09:42:39 +01:00
fddi net: fddi: fix UAF in fza_probe 2021-07-13 09:43:50 -07:00
fjes Tracing updates for 5.14: 2021-07-03 11:13:22 -07:00
hamradio TTY / Serial patches for 5.14-rc1 2021-07-05 14:08:24 -07:00
hippi
hyperv Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
ieee802154 ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl() 2021-06-22 21:26:59 +02:00
ipa Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
ipvlan
mdio net: mdiobus: withdraw fwnode_mdbiobus_register 2021-06-25 11:46:29 -07:00
mhi net: really fix the build... 2021-08-03 11:14:03 +01:00
netdevsim net: netdevsim: use xso.real_dev instead of xso.dev in callback functions of struct xfrmdev_ops 2021-07-06 10:36:59 -07:00
pcs
phy net: phy: micrel: Fix link detection on ksz87xx switch" 2021-08-08 12:03:24 +01:00
plip
ppp ppp: Fix generating ppp unit id when ifname is not specified 2021-08-08 13:08:46 +01:00
slip TTY / Serial patches for 5.14-rc1 2021-07-05 14:08:24 -07:00
team
usb net: pegasus: fix uninit-value in get_interrupt_interval 2021-08-05 07:29:24 -07:00
vmxnet3 vmxnet3: fix cksum offload issues for tunnels with non-default udp ports 2021-07-02 13:41:15 -07:00
wan Networking fixes for 5.14-rc2, including fixes from bpf and netfilter. 2021-07-14 09:24:32 -07:00
wireguard
wireless virt_wifi: fix error on connect 2021-07-23 10:34:31 +02:00
wwan net: wwan: mhi_wwan_ctrl: Fix possible deadlock 2021-08-07 09:35:48 +01:00
xen-netback
bareudp.c bareudp: Fix invalid read beyond skb's linear data 2021-08-09 15:37:43 -07:00
dummy.c
eql.c
geneve.c
gtp.c gtp: reset mac_header after decap 2021-06-28 12:44:17 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c net: macsec: fix the length used to copy the key for offloading 2021-06-24 12:41:12 -07:00
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 Networking fixes for 5.14-rc2, including fixes from bpf and netfilter. 2021-07-14 09:24:32 -07:00
vrf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-06-29 15:45:27 -07:00
vsockmon.c
vxlan.c vxlan: add missing rcu_read_lock() in neigh_reduce() 2021-06-22 09:48:38 -07:00
xen-netfront.c