Commit 626bf91a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes and stragglers from Jakub Kicinski:
 "Networking stragglers and fixes, including changes from netfilter,
  wireless and can.

  Current release - regressions:

   - qrtr: revert check in qrtr_endpoint_post(), fixes audio and wifi

   - ip_gre: validate csum_start only on pull

   - bnxt_en: fix 64-bit doorbell operation on 32-bit kernels

   - ionic: fix double use of queue-lock, fix a sleeping in atomic

   - can: c_can: fix null-ptr-deref on ioctl()

   - cs89x0: disable compile testing on powerpc

  Current release - new code bugs:

   - bridge: mcast: fix vlan port router deadlock, consistently disable
     BH

  Previous releases - regressions:

   - dsa: tag_rtl4_a: fix egress tags, only port 0 was working

   - mptcp: fix possible divide by zero

   - netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex

   - netfilter: socket: icmp6: fix use-after-scope

   - stmmac: fix MAC not working when system resume back with WoL active

  Previous releases - always broken:

   - ip/ip6_gre: use the same logic as SIT interfaces when computing
     v6LL address

   - seg6: set fc_nlinfo in nh_create_ipv4, nh_create_ipv6

   - mptcp: only send extra TCP acks in eligible socket states

   - dsa: lantiq_gswip: fix maximum frame length

   - stmmac: fix overall budget calculation for rxtx_napi

   - bnxt_en: fix firmware version reporting via devlink

   - renesas: sh_eth: add missing barrier to fix freeing wrong tx
     descriptor

  Stragglers:

   - netfilter: conntrack: switch to siphash

   - netfilter: refuse insertion if chain has grown too large

   - ncsi: add get MAC address command to get Intel i210 MAC address"

* tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (76 commits)
  ieee802154: Remove redundant initialization of variable ret
  net: stmmac: fix MAC not working when system resume back with WoL active
  net: phylink: add suspend/resume support
  net: renesas: sh_eth: Fix freeing wrong tx descriptor
  bonding: 3ad: pass parameter bond_params by reference
  cxgb3: fix oops on module removal
  can: c_can: fix null-ptr-deref on ioctl()
  can: rcar_canfd: add __maybe_unused annotation to silence warning
  net: wwan: iosm: Unify IO accessors used in the driver
  net: wwan: iosm: Replace io.*64_lo_hi() with regular accessors
  net: qcom/emac: Replace strlcpy with strscpy
  ip6_gre: Revert "ip6_gre: add validation for csum_start"
  net: hns3: make hclgevf_cmd_caps_bit_map0 and hclge_cmd_caps_bit_map0 static
  selftests/bpf: Test XDP bonding nest and unwind
  bonding: Fix negative jump label count on nested bonding
  MAINTAINERS: add VM SOCKETS (AF_VSOCK) entry
  stmmac: dwmac-loongson:Fix missing return value
  iwlwifi: fix printk format warnings in uefi.c
  net: create netdev->dev_addr assignment helpers
  bnxt_en: Fix possible unintended driver initiated error recovery
  ...
parents 4c00e1e2 0f77f2de
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -17,9 +17,8 @@ nf_conntrack_acct - BOOLEAN
nf_conntrack_buckets - INTEGER
	Size of hash table. If not specified as parameter during module
	loading, the default size is calculated by dividing total memory
	by 16384 to determine the number of buckets but the hash table will
	never have fewer than 32 and limited to 16384 buckets. For systems
	with more than 4GB of memory it will be 65536 buckets.
	by 16384 to determine the number of buckets. The hash table will
	never have fewer than 1024 and never more than 262144 buckets.
	This sysctl is only writeable in the initial net namespace.

nf_conntrack_checksum - BOOLEAN
@@ -100,8 +99,12 @@ nf_conntrack_log_invalid - INTEGER
	Log invalid packets of a type specified by value.

nf_conntrack_max - INTEGER
	Size of connection tracking table.  Default value is
	nf_conntrack_buckets value * 4.
        Maximum number of allowed connection tracking entries. This value is set
        to nf_conntrack_buckets by default.
        Note that connection tracking entries are added to the table twice -- once
        for the original direction and once for the reply direction (i.e., with
        the reversed address). This means that with default settings a maxed-out
        table will have a average hash chain length of 2, not 1.

nf_conntrack_tcp_be_liberal - BOOLEAN
	- 0 - disabled (default)
+13 −7
Original line number Diff line number Diff line
@@ -19761,18 +19761,11 @@ L: kvm@vger.kernel.org
L:	virtualization@lists.linux-foundation.org
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/vsockmon.c
F:	drivers/vhost/vsock.c
F:	include/linux/virtio_vsock.h
F:	include/uapi/linux/virtio_vsock.h
F:	include/uapi/linux/vm_sockets_diag.h
F:	include/uapi/linux/vsockmon.h
F:	net/vmw_vsock/af_vsock_tap.c
F:	net/vmw_vsock/diag.c
F:	net/vmw_vsock/virtio_transport.c
F:	net/vmw_vsock/virtio_transport_common.c
F:	net/vmw_vsock/vsock_loopback.c
F:	tools/testing/vsock/
VIRTIO BLOCK AND SCSI DRIVERS
M:	"Michael S. Tsirkin" <mst@redhat.com>
@@ -19977,6 +19970,19 @@ F: drivers/staging/vme/
F:	drivers/vme/
F:	include/linux/vme*
VM SOCKETS (AF_VSOCK)
M:	Stefano Garzarella <sgarzare@redhat.com>
L:	virtualization@lists.linux-foundation.org
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/vsockmon.c
F:	include/net/af_vsock.h
F:	include/uapi/linux/vm_sockets.h
F:	include/uapi/linux/vm_sockets_diag.h
F:	include/uapi/linux/vsockmon.h
F:	net/vmw_vsock/
F:	tools/testing/vsock/
VMWARE BALLOON DRIVER
M:	Nadav Amit <namit@vmware.com>
M:	"VMware, Inc." <pv-drivers@vmware.com>
+4 −4
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ static int ad_marker_send(struct port *port, struct bond_marker *marker);
static void ad_mux_machine(struct port *port, bool *update_slave_arr);
static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port);
static void ad_tx_machine(struct port *port);
static void ad_periodic_machine(struct port *port, struct bond_params bond_params);
static void ad_periodic_machine(struct port *port, struct bond_params *bond_params);
static void ad_port_selection_logic(struct port *port, bool *update_slave_arr);
static void ad_agg_selection_logic(struct aggregator *aggregator,
				   bool *update_slave_arr);
@@ -1298,7 +1298,7 @@ static void ad_tx_machine(struct port *port)
 *
 * Turn ntt flag on priodically to perform periodic transmission of lacpdu's.
 */
static void ad_periodic_machine(struct port *port, struct bond_params bond_params)
static void ad_periodic_machine(struct port *port, struct bond_params *bond_params)
{
	periodic_states_t last_state;

@@ -1308,7 +1308,7 @@ static void ad_periodic_machine(struct port *port, struct bond_params bond_param
	/* check if port was reinitialized */
	if (((port->sm_vars & AD_PORT_BEGIN) || !(port->sm_vars & AD_PORT_LACP_ENABLED) || !port->is_enabled) ||
	    (!(port->actor_oper_port_state & LACP_STATE_LACP_ACTIVITY) && !(port->partner_oper.port_state & LACP_STATE_LACP_ACTIVITY)) ||
	    !bond_params.lacp_active) {
	    !bond_params->lacp_active) {
		port->sm_periodic_state = AD_NO_PERIODIC;
	}
	/* check if state machine should change state */
@@ -2342,7 +2342,7 @@ void bond_3ad_state_machine_handler(struct work_struct *work)
		}

		ad_rx_machine(NULL, port);
		ad_periodic_machine(port, bond->params);
		ad_periodic_machine(port, &bond->params);
		ad_port_selection_logic(port, &update_slave_arr);
		ad_mux_machine(port, &update_slave_arr);
		ad_tx_machine(port);
+8 −9
Original line number Diff line number Diff line
@@ -2169,7 +2169,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
			res = -EOPNOTSUPP;
			goto err_sysfs_del;
		}
	} else {
	} else if (bond->xdp_prog) {
		struct netdev_bpf xdp = {
			.command = XDP_SETUP_PROG,
			.flags   = 0,
@@ -2910,7 +2910,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
			 * probe to generate any traffic (arp_validate=0)
			 */
			if (bond->params.arp_validate)
				net_warn_ratelimited("%s: no route to arp_ip_target %pI4 and arp_validate is set\n",
				pr_warn_once("%s: no route to arp_ip_target %pI4 and arp_validate is set\n",
					     bond->dev->name,
					     &targets[i]);
			bond_arp_send(slave, ARPOP_REQUEST, targets[i],
@@ -5224,13 +5224,12 @@ static int bond_xdp_set(struct net_device *dev, struct bpf_prog *prog,
			bpf_prog_inc(prog);
	}

	if (old_prog)
		bpf_prog_put(old_prog);

	if (prog)
	if (prog) {
		static_branch_inc(&bpf_master_redirect_enabled_key);
	else
	} else if (old_prog) {
		bpf_prog_put(old_prog);
		static_branch_dec(&bpf_master_redirect_enabled_key);
	}

	return 0;

+1 −3
Original line number Diff line number Diff line
@@ -15,10 +15,8 @@ static void c_can_get_drvinfo(struct net_device *netdev,
			      struct ethtool_drvinfo *info)
{
	struct c_can_priv *priv = netdev_priv(netdev);
	struct platform_device *pdev = to_platform_device(priv->device);

	strscpy(info->driver, "c_can", sizeof(info->driver));
	strscpy(info->bus_info, pdev->name, sizeof(info->bus_info));
	strscpy(info->bus_info, dev_name(priv->device), sizeof(info->bus_info));
}

static void c_can_get_ringparam(struct net_device *netdev,
Loading