linux/drivers/net
Jan Beulich 8b2f219914 xen-netback: properly sync TX responses
commit 7b55984c96 upstream.

Invoking the make_tx_response() / push_tx_responses() pair with no lock
held would be acceptable only if all such invocations happened from the
same context (NAPI instance or dealloc thread). Since this isn't the
case, and since the interface "spec" also doesn't demand that multicast
operations may only be performed with no in-flight transmits,
MCAST_{ADD,DEL} processing also needs to acquire the response lock
around the invocations.

To prevent similar mistakes going forward, "downgrade" the present
functions to private helpers of just the two remaining ones using them
directly, with no forward declarations anymore. This involves renaming
what so far was make_tx_response(), for the new function of that name
to serve the new (wrapper) purpose.

While there,
- constify the txp parameters,
- correct xenvif_idx_release()'s status parameter's type,
- rename {,_}make_tx_response()'s status parameters for consistency with
  xenvif_idx_release()'s.

Fixes: 210c34dcd8 ("xen-netback: add support for multicast control")
Cc: stable@vger.kernel.org
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Link: https://lore.kernel.org/r/980c6c3d-e10e-4459-8565-e8fbde122f00@suse.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-02-23 08:55:05 +01:00
..
appletalk make legacy ISA probe optional 2021-08-03 13:05:26 +01:00
arcnet arcnet: restoring support for multiple Sohard Arcnet cards 2023-12-13 18:36:35 +01:00
bonding bonding: remove print in bond_verify_device_path 2024-02-23 08:54:55 +01:00
caif caif_virtio: fix race between virtio_device_ready() and ndo_open() 2022-07-07 17:53:27 +02:00
can can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds 2023-11-20 11:08:15 +01:00
dsa net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path 2024-02-23 08:54:44 +01:00
ethernet i40e: Fix waiting for queues of all VSIs to be disabled 2024-02-23 08:55:02 +01:00
fddi net: defxx: Fix missing err handling in dfx_init() 2022-12-31 13:14:18 +01:00
fjes fjes: fix memleaks in fjes_hw_setup 2024-02-23 08:54:30 +01:00
hamradio hamradio: baycom_epp: Fix return type of baycom_send_packet() 2022-12-31 13:14:41 +01:00
hippi drivers: net: hippi: Fix deadlock in rr_close() 2022-05-09 09:14:40 +02:00
hyperv hv_netvsc: Calculate correct ring size when PAGE_SIZE is not 4 Kbytes 2024-02-23 08:54:31 +01:00
ieee802154 net: ieee802154: adf7242: Fix some potential buffer overflow in adf7242_stats_show() 2023-11-08 17:26:38 +01:00
ipa net: ipa: compute DMA pool size properly 2023-04-05 11:24:57 +02:00
ipvlan ipvlan: add ipvlan_route_v6_outbound() helper 2023-11-28 16:56:22 +00:00
mctp mctp: Add initial driver infrastructure 2021-07-29 15:06:50 +01:00
mdio net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() 2023-05-24 17:36:41 +01:00
netdevsim netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write() 2023-07-23 13:47:45 +02:00
pcs net: pcs: xpcs: remove double-read of link state when using AN 2023-05-11 23:00:26 +09:00
phy net: phy: micrel: populate .soft_reset for KSZ9131 2024-01-25 14:52:53 -08:00
plip net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq() 2022-12-14 11:37:29 +01:00
ppp ppp_async: limit MRU to 64K 2024-02-23 08:54:58 +01:00
slip drivers: net: slip: fix NPD bug in sl_tx_timeout() 2022-04-20 09:34:17 +02:00
team team: Fix use-after-free when an option instance allocation fails 2023-12-20 15:17:41 +01:00
usb net: usb: ax88179_178a: move priv to driver_priv 2024-01-15 18:51:27 +01:00
vmxnet3 vmxnet3: correctly report csum_level for encapsulated packet 2023-01-12 11:59:09 +01:00
vxlan vxlan: generalize vxlan_parse_gpe_hdr and remove unused args 2023-09-19 12:22:27 +02:00
wan drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() 2023-10-10 21:59:06 +02:00
wireguard wireguard: use DEV_STATS_INC() 2023-12-03 07:31:21 +01:00
wireless wifi: iwlwifi: Fix some error codes 2024-02-23 08:55:02 +01:00
wwan net: wwan: iosm: fix dma_alloc_coherent incompatible pointer type 2022-12-08 11:28:41 +01:00
xen-netback xen-netback: properly sync TX responses 2024-02-23 08:55:05 +01:00
bareudp.c bareudp: use ipv6_mod_enabled to check if IPv6 enabled 2022-04-08 14:23:41 +02:00
dummy.c net: bonding, dummy, ifb, team: advertise NETIF_F_GSO_SOFTWARE 2020-11-03 16:53:55 -08:00
eql.c eql: use ndo_siocdevprivate 2021-07-27 20:11:43 +01:00
geneve.c geneve: fix TOS inheriting for ipv4 2022-08-25 11:40:15 +02:00
gtp.c gtp: fix fragmentation needed check with gso 2023-11-08 17:26:39 +01:00
ifb.c ifb: fix building without CONFIG_NET_CLS_ACT 2021-11-18 19:16:04 +01:00
Kconfig lib/crypto: blake2s: include as built-in 2022-05-30 09:28:59 +02:00
LICENSE.SRC Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
loopback.c net: loopback: use NET_NAME_PREDICTABLE for name_assign_type 2022-12-21 17:36:38 +01:00
macsec.c net: add DEV_STATS_READ() helper 2023-11-20 11:08:16 +01:00
macvlan.c macvlan: Don't propagate promisc change to lower dev in passthru 2023-11-28 16:56:25 +00:00
macvtap.c macvtap: advertise link netns via netlink 2022-04-13 20:59:07 +02:00
Makefile vxlan: move to its own directory 2023-08-03 10:22:34 +02:00
mdio.c net: mdio: Correct function name mdio45_links_ok() in comment 2021-03-29 13:42:44 -07:00
mhi_net.c net: mhi: Fix memory leak in mhi_net_dellink() 2022-11-26 09:24:40 +01:00
mii.c net: mii: make mii_ethtool_gset() return void 2021-08-19 13:06:53 +01:00
net_failover.c net/net_failover: fix txq exceeding warning 2023-04-05 11:24:55 +02:00
netconsole.c net: netconsole: Add description for 'netconsole_target's extended attribute 2020-11-03 16:40:09 -08:00
nlmon.c net: don't include ethtool.h from netdevice.h 2020-11-23 17:27:04 -08:00
ntb_netdev.c ntb_netdev: Use dev_kfree_skb_any() in interrupt context 2022-12-31 13:14:20 +01:00
rionet.c rionet: Fix use correct return type for ndo_start_xmit() 2020-04-30 12:15:13 -07:00
sb1000.c sb1000: use ndo_siocdevprivate 2021-07-27 20:11:44 +01:00
Space.c wan: remove sbni/granch driver 2021-08-03 13:05:26 +01:00
sungem_phy.c net: sungem_phy: Add of_node_put() for reference returned by of_get_parent() 2022-08-03 12:03:48 +02:00
tap.c net: tap_open(): set sk_uid from current_fsuid() 2023-08-11 15:13:57 +02:00
thunderbolt.c net: thunderbolt: Fix TCPv6 GSO checksum calculation 2023-10-06 13:18:23 +02:00
tun.c tun: prevent negative ifindex 2023-10-25 11:58:57 +02:00
veth.c veth: Fixing transmit return status for dropped packets 2023-09-19 12:22:58 +02:00
virtio_net.c virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings 2024-02-23 08:54:51 +01:00
vrf.c vrf: fix packet sniffing for traffic originating from ip tunnels 2022-04-13 20:59:15 +02:00
vsockmon.c net: don't include ethtool.h from netdevice.h 2020-11-23 17:27:04 -08:00
xen-netfront.c xen-netfront: Fix NULL sring after live migration 2022-12-14 11:37:26 +01:00