Commit 8b97cae3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from wireless and netfilter.

  Current release - regressions:

   - dsa: lantiq_gswip: fix use after free in gswip_remove()

   - smc: avoid overwriting the copies of clcsock callback functions

  Current release - new code bugs:

   - iwlwifi:
      - fix use-after-free when no FW is present
      - mei: fix the pskb_may_pull check in ipv4
      - mei: retry mapping the shared area
      - mvm: don't feed the hardware RFKILL into iwlmei

  Previous releases - regressions:

   - ipv6: mcast: use rcu-safe version of ipv6_get_lladdr()

   - tipc: fix wrong publisher node address in link publications

   - iwlwifi: mvm: don't send SAR GEO command for 3160 devices, avoid FW
     assertion

   - bgmac: make idm and nicpm resource optional again

   - atl1c: fix tx timeout after link flap

  Previous releases - always broken:

   - vsock: remove vsock from connected table when connect is
     interrupted by a signal

   - ping: change destination interface checks to match raw sockets

   - crypto: af_alg - get rid of alg_memory_allocated to avoid confusing
     semantics (and null-deref) after SO_RESERVE_MEM was added

   - ipv6: make exclusive flowlabel checks per-netns

   - bonding: force carrier update when releasing slave

   - sched: limit TC_ACT_REPEAT loops

   - bridge: multicast: notify switchdev driver whenever MC processing
     gets disabled because of max entries reached

   - wifi: brcmfmac: fix crash in brcm_alt_fw_path when WLAN not found

   - iwlwifi: fix locking when "HW not ready"

   - phy: mediatek: remove PHY mode check on MT7531

   - dsa: mv88e6xxx: flush switchdev FDB workqueue before removing VLAN

   - dsa: lan9303:
      - fix polarity of reset during probe
      - fix accelerated VLAN handling"

* tag 'net-5.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits)
  bonding: force carrier update when releasing slave
  nfp: flower: netdev offload check for ip6gretap
  ipv6: fix data-race in fib6_info_hw_flags_set / fib6_purge_rt
  ipv4: fix data races in fib_alias_hw_flags_set
  net: dsa: lan9303: add VLAN IDs to master device
  net: dsa: lan9303: handle hwaccel VLAN tags
  vsock: remove vsock from connected table when connect is interrupted by a signal
  Revert "net: ethernet: bgmac: Use devm_platform_ioremap_resource_byname"
  ping: fix the dif and sdif check in ping_lookup
  net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
  net: sched: limit TC_ACT_REPEAT loops
  tipc: fix wrong notification node addresses
  net: dsa: lantiq_gswip: fix use after free in gswip_remove()
  ipv6: per-netns exclusive flowlabel checks
  net: bridge: multicast: notify switchdev driver whenever MC processing gets disabled
  CDC-NCM: avoid overflow in sanity checking
  mctp: fix use after free
  net: mscc: ocelot: fix use-after-free in ocelot_vlan_del()
  bonding: fix data-races around agg_select_timer
  dpaa2-eth: Initialize mutex used in one step timestamping path
  ...
parents a3580ac9 a6ab75ce
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -3139,11 +3139,9 @@ W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
F:	drivers/net/wireless/ath/ath5k/
ATHEROS ATH6KL WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
L:	linux-wireless@vger.kernel.org
S:	Supported
S:	Orphan
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	drivers/net/wireless/ath/ath6kl/
ATI_REMOTE2 DRIVER
@@ -7188,7 +7186,7 @@ F: drivers/net/can/usb/etas_es58x/
ETHERNET BRIDGE
M:	Roopa Prabhu <roopa@nvidia.com>
M:	Nikolay Aleksandrov <nikolay@nvidia.com>
M:	Nikolay Aleksandrov <razor@blackwall.org>
L:	bridge@lists.linux-foundation.org (moderated for non-subscribers)
L:	netdev@vger.kernel.org
S:	Maintained
@@ -15912,6 +15910,7 @@ S: Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	drivers/net/wireless/ath/ath10k/
F:	Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
@@ -15919,11 +15918,12 @@ L: ath11k@lists.infradead.org
S:	Supported
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
F:	drivers/net/wireless/ath/ath11k/
F:	Documentation/devicetree/bindings/net/wireless/qcom,ath11k.txt
QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
M:	ath9k-devel@qca.qualcomm.com
M:	Toke Høiland-Jørgensen <toke@toke.dk>
L:	linux-wireless@vger.kernel.org
S:	Supported
S:	Maintained
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
F:	Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
F:	drivers/net/wireless/ath/ath9k/
@@ -16104,11 +16104,10 @@ F: Documentation/devicetree/bindings/media/*venus*
F:	drivers/media/platform/qcom/venus/
QUALCOMM WCN36XX WIRELESS DRIVER
M:	Kalle Valo <kvalo@kernel.org>
M:	Loic Poulain <loic.poulain@linaro.org>
L:	wcn36xx@lists.infradead.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
T:	git git://github.com/KrasnikovEugene/wcn36xx.git
F:	drivers/net/wireless/ath/wcn36xx/
QUANTENNA QTNFMAC WIRELESS DRIVER
+0 −3
Original line number Diff line number Diff line
@@ -25,12 +25,9 @@ struct alg_type_list {
	struct list_head list;
};

static atomic_long_t alg_memory_allocated;

static struct proto alg_proto = {
	.name			= "ALG",
	.owner			= THIS_MODULE,
	.memory_allocated	= &alg_memory_allocated,
	.obj_size		= sizeof(struct alg_sock),
};

+25 −5
Original line number Diff line number Diff line
@@ -225,7 +225,7 @@ static inline int __check_agg_selection_timer(struct port *port)
	if (bond == NULL)
		return 0;

	return BOND_AD_INFO(bond).agg_select_timer ? 1 : 0;
	return atomic_read(&BOND_AD_INFO(bond).agg_select_timer) ? 1 : 0;
}

/**
@@ -1995,7 +1995,7 @@ static void ad_marker_response_received(struct bond_marker *marker,
 */
void bond_3ad_initiate_agg_selection(struct bonding *bond, int timeout)
{
	BOND_AD_INFO(bond).agg_select_timer = timeout;
	atomic_set(&BOND_AD_INFO(bond).agg_select_timer, timeout);
}

/**
@@ -2278,6 +2278,28 @@ void bond_3ad_update_ad_actor_settings(struct bonding *bond)
	spin_unlock_bh(&bond->mode_lock);
}

/**
 * bond_agg_timer_advance - advance agg_select_timer
 * @bond:  bonding structure
 *
 * Return true when agg_select_timer reaches 0.
 */
static bool bond_agg_timer_advance(struct bonding *bond)
{
	int val, nval;

	while (1) {
		val = atomic_read(&BOND_AD_INFO(bond).agg_select_timer);
		if (!val)
			return false;
		nval = val - 1;
		if (atomic_cmpxchg(&BOND_AD_INFO(bond).agg_select_timer,
				   val, nval) == val)
			break;
	}
	return nval == 0;
}

/**
 * bond_3ad_state_machine_handler - handle state machines timeout
 * @work: work context to fetch bonding struct to work on from
@@ -2313,9 +2335,7 @@ void bond_3ad_state_machine_handler(struct work_struct *work)
	if (!bond_has_slaves(bond))
		goto re_arm;

	/* check if agg_select_timer timer after initialize is timed out */
	if (BOND_AD_INFO(bond).agg_select_timer &&
	    !(--BOND_AD_INFO(bond).agg_select_timer)) {
	if (bond_agg_timer_advance(bond)) {
		slave = bond_first_slave_rcu(bond);
		port = slave ? &(SLAVE_AD_INFO(slave)->port) : NULL;

+2 −3
Original line number Diff line number Diff line
@@ -2379,10 +2379,9 @@ static int __bond_release_one(struct net_device *bond_dev,
		bond_select_active_slave(bond);
	}

	if (!bond_has_slaves(bond)) {
	bond_set_carrier(bond);
	if (!bond_has_slaves(bond))
		eth_hw_addr_random(bond_dev);
	}

	unblock_netpoll_tx();
	synchronize_rcu();
+1 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ config NET_DSA_REALTEK_SMI

config NET_DSA_SMSC_LAN9303
	tristate
	depends on VLAN_8021Q || VLAN_8021Q=n
	select NET_DSA_TAG_LAN9303
	select REGMAP
	help
Loading