Commit 1722389b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from bpf and netfilter.

  A lot of networking people were at a conference last week, busy
  catching COVID, so relatively short PR.

  Current release - regressions:

   - tcp: process the 3rd ACK with sk_socket for TFO and MPTCP

  Current release - new code bugs:

   - l2tp: protect session IDR and tunnel session list with one lock,
     make sure the state is coherent to avoid a warning

   - eth: bnxt_en: update xdp_rxq_info in queue restart logic

   - eth: airoha: fix location of the MBI_RX_AGE_SEL_MASK field

  Previous releases - regressions:

   - xsk: require XDP_UMEM_TX_METADATA_LEN to actuate tx_metadata_len,
     the field reuses previously un-validated pad

  Previous releases - always broken:

   - tap/tun: drop short frames to prevent crashes later in the stack

   - eth: ice: add a per-VF limit on number of FDIR filters

   - af_unix: disable MSG_OOB handling for sockets in sockmap/sockhash"

* tag 'net-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (34 commits)
  tun: add missing verification for short frame
  tap: add missing verification for short frame
  mISDN: Fix a use after free in hfcmulti_tx()
  gve: Fix an edge case for TSO skb validity check
  bnxt_en: update xdp_rxq_info in queue restart logic
  tcp: process the 3rd ACK with sk_socket for TFO/MPTCP
  selftests/bpf: Add XDP_UMEM_TX_METADATA_LEN to XSK TX metadata test
  xsk: Require XDP_UMEM_TX_METADATA_LEN to actuate tx_metadata_len
  bpf: Fix a segment issue when downgrading gso_size
  net: mediatek: Fix potential NULL pointer dereference in dummy net_device handling
  MAINTAINERS: make Breno the netconsole maintainer
  MAINTAINERS: Update bonding entry
  net: nexthop: Initialize all fields in dumped nexthops
  net: stmmac: Correct byte order of perfect_match
  selftests: forwarding: skip if kernel not support setting bridge fdb learning limit
  tipc: Return non-zero value from tipc_udp_addr2str() on error
  netfilter: nft_set_pipapo_avx2: disable softinterrupts
  ice: Fix recipe read procedure
  ice: Add a per-VF limit on number of FDIR filters
  net: bonding: correctly annotate RCU in bond_should_notify_peers()
  ...
parents 8bf10009 af65ea42
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -474,6 +474,8 @@ Nadia Yvette Chambers <nyc@holomorphy.com> William Lee Irwin III <wli@holomorphy
Naoya Horiguchi <nao.horiguchi@gmail.com> <n-horiguchi@ah.jp.nec.com>
Naoya Horiguchi <nao.horiguchi@gmail.com> <naoya.horiguchi@nec.com>
Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com>
Naveen N Rao <naveen@kernel.org> <naveen.n.rao@linux.ibm.com>
Naveen N Rao <naveen@kernel.org> <naveen.n.rao@linux.vnet.ibm.com>
Neeraj Upadhyay <neeraj.upadhyay@kernel.org> <quic_neeraju@quicinc.com>
Neeraj Upadhyay <neeraj.upadhyay@kernel.org> <neeraju@codeaurora.org>
Neil Armstrong <neil.armstrong@linaro.org> <narmstrong@baylibre.com>
+10 −6
Original line number Diff line number Diff line
@@ -11,12 +11,16 @@ metadata on the receive side.
General Design
==============

The headroom for the metadata is reserved via ``tx_metadata_len`` in
``struct xdp_umem_reg``. The metadata length is therefore the same for
every socket that shares the same umem. The metadata layout is a fixed UAPI,
refer to ``union xsk_tx_metadata`` in ``include/uapi/linux/if_xdp.h``.
Thus, generally, the ``tx_metadata_len`` field above should contain
``sizeof(union xsk_tx_metadata)``.
The headroom for the metadata is reserved via ``tx_metadata_len`` and
``XDP_UMEM_TX_METADATA_LEN`` flag in ``struct xdp_umem_reg``. The metadata
length is therefore the same for every socket that shares the same umem.
The metadata layout is a fixed UAPI, refer to ``union xsk_tx_metadata`` in
``include/uapi/linux/if_xdp.h``. Thus, generally, the ``tx_metadata_len``
field above should contain ``sizeof(union xsk_tx_metadata)``.

Note that in the original implementation the ``XDP_UMEM_TX_METADATA_LEN``
flag was not required. Applications might attempt to create a umem
with a flag first and if it fails, do another attempt without a flag.

The headroom and the metadata itself should be located right before
``xdp_desc->addr`` in the umem frame. Within a frame, the metadata
+13 −6
Original line number Diff line number Diff line
@@ -3906,11 +3906,10 @@ F: include/net/bluetooth/
F:	net/bluetooth/
BONDING DRIVER
M:	Jay Vosburgh <j.vosburgh@gmail.com>
M:	Jay Vosburgh <jv@jvosburgh.net>
M:	Andy Gospodarek <andy@greyhouse.net>
L:	netdev@vger.kernel.org
S:	Supported
W:	http://sourceforge.net/projects/bonding/
S:	Maintained
F:	Documentation/networking/bonding.rst
F:	drivers/net/bonding/
F:	include/net/bond*
@@ -3974,8 +3973,10 @@ S: Odd Fixes
F:	drivers/net/ethernet/netronome/nfp/bpf/
BPF JIT for POWERPC (32-BIT AND 64-BIT)
M:	Naveen N. Rao <naveen.n.rao@linux.ibm.com>
M:	Michael Ellerman <mpe@ellerman.id.au>
M:	Hari Bathini <hbathini@linux.ibm.com>
M:	Christophe Leroy <christophe.leroy@csgroup.eu>
R:	Naveen N Rao <naveen@kernel.org>
L:	bpf@vger.kernel.org
S:	Supported
F:	arch/powerpc/net/
@@ -12529,7 +12530,7 @@ F: mm/kmsan/
F:	scripts/Makefile.kmsan
KPROBES
M:	Naveen N. Rao <naveen.n.rao@linux.ibm.com>
M:	Naveen N Rao <naveen@kernel.org>
M:	Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
M:	"David S. Miller" <davem@davemloft.net>
M:	Masami Hiramatsu <mhiramat@kernel.org>
@@ -12906,7 +12907,7 @@ LINUX FOR POWERPC (32-BIT AND 64-BIT)
M:	Michael Ellerman <mpe@ellerman.id.au>
R:	Nicholas Piggin <npiggin@gmail.com>
R:	Christophe Leroy <christophe.leroy@csgroup.eu>
R:	Naveen N. Rao <naveen.n.rao@linux.ibm.com>
R:	Naveen N Rao <naveen@kernel.org>
L:	linuxppc-dev@lists.ozlabs.org
S:	Supported
W:	https://github.com/linuxppc/wiki/wiki
@@ -15762,6 +15763,12 @@ S: Maintained
F:	Documentation/devicetree/bindings/hwmon/nuvoton,nct6775.yaml
F:	drivers/hwmon/nct6775-i2c.c
NETCONSOLE
M:	Breno Leitao <leitao@debian.org>
S:	Maintained
F:	Documentation/networking/netconsole.rst
F:	drivers/net/netconsole.c
NETDEVSIM
M:	Jakub Kicinski <kuba@kernel.org>
S:	Maintained
+4 −3
Original line number Diff line number Diff line
@@ -1901,7 +1901,7 @@ hfcmulti_dtmf(struct hfc_multi *hc)
static void
hfcmulti_tx(struct hfc_multi *hc, int ch)
{
	int i, ii, temp, len = 0;
	int i, ii, temp, tmp_len, len = 0;
	int Zspace, z1, z2; /* must be int for calculation */
	int Fspace, f1, f2;
	u_char *d;
@@ -2122,14 +2122,15 @@ hfcmulti_tx(struct hfc_multi *hc, int ch)
		HFC_wait_nodebug(hc);
	}

	tmp_len = (*sp)->len;
	dev_kfree_skb(*sp);
	/* check for next frame */
	if (bch && get_next_bframe(bch)) {
		len = (*sp)->len;
		len = tmp_len;
		goto next_frame;
	}
	if (dch && get_next_dframe(dch)) {
		len = (*sp)->len;
		len = tmp_len;
		goto next_frame;
	}

+2 −5
Original line number Diff line number Diff line
@@ -1121,13 +1121,10 @@ static struct slave *bond_find_best_slave(struct bonding *bond)
	return bestslave;
}

/* must be called in RCU critical section or with RTNL held */
static bool bond_should_notify_peers(struct bonding *bond)
{
	struct slave *slave;

	rcu_read_lock();
	slave = rcu_dereference(bond->curr_active_slave);
	rcu_read_unlock();
	struct slave *slave = rcu_dereference_rtnl(bond->curr_active_slave);

	if (!slave || !bond->send_peer_notif ||
	    bond->send_peer_notif %
Loading