Commit 4d02da97 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Networking fixes for 5.10-rc5, including fixes from the WiFi
  (mac80211), can and bpf (including the strncpy_from_user fix).

  Current release - regressions:

   - mac80211: fix memory leak of filtered powersave frames

   - mac80211: free sta in sta_info_insert_finish() on errors to avoid
     sleeping in atomic context

   - netlabel: fix an uninitialized variable warning added in -rc4

  Previous release - regressions:

   - vsock: forward all packets to the host when no H2G is registered,
     un-breaking AWS Nitro Enclaves

   - net: Exempt multicast addresses from five-second neighbor lifetime
     requirement, decreasing the chances neighbor tables fill up

   - net/tls: fix corrupted data in recvmsg

   - qed: fix ILT configuration of SRC block

   - can: m_can: process interrupt only when not runtime suspended

  Previous release - always broken:

   - page_frag: Recover from memory pressure by not recycling pages
     allocating from the reserves

   - strncpy_from_user: Mask out bytes after NUL terminator

   - ip_tunnels: Set tunnel option flag only when tunnel metadata is
     present, always setting it confuses Open vSwitch

   - bpf, sockmap:
      - Fix partial copy_page_to_iter so progress can still be made
      - Fix socket memory accounting and obeying SO_RCVBUF

   - net: Have netpoll bring-up DSA management interface

   - net: bridge: add missing counters to ndo_get_stats64 callback

   - tcp: brr: only postpone PROBE_RTT if RTT is < current min_rtt

   - enetc: Workaround MDIO register access HW bug

   - net/ncsi: move netlink family registration to a subsystem init,
     instead of tying it to driver probe

   - net: ftgmac100: unregister NC-SI when removing driver to avoid
     crash

   - lan743x:
      - prevent interrupt storm on open
      - fix freeing skbs in the wrong context

   - net/mlx5e: Fix socket refcount leak on kTLS RX resync

   - net: dsa: mv88e6xxx: Avoid VLAN database corruption on 6097

   - fix 21 unset return codes and other mistakes on error paths, mostly
     detected by the Hulk Robot"

* tag 'net-5.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (115 commits)
  fail_function: Remove a redundant mutex unlock
  selftest/bpf: Test bpf_probe_read_user_str() strips trailing bytes after NUL
  lib/strncpy_from_user.c: Mask out bytes after NUL terminator.
  net/smc: fix direct access to ib_gid_addr->ndev in smc_ib_determine_gid()
  net/smc: fix matching of existing link groups
  ipv6: Remove dependency of ipv6_frag_thdr_truncated on ipv6 module
  libbpf: Fix VERSIONED_SYM_COUNT number parsing
  net/mlx4_core: Fix init_hca fields offset
  atm: nicstar: Unmap DMA on send error
  page_frag: Recover from memory pressure
  net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset
  mlxsw: core: Use variable timeout for EMAD retries
  mlxsw: Fix firmware flashing
  net: Have netpoll bring-up DSA management interface
  atl1e: fix error return code in atl1e_probe()
  atl1c: fix error return code in atl1c_probe()
  ah6: fix error return code in ah6_input()
  net: usb: qmi_wwan: Set DTR quirk for MR400
  can: m_can: process interrupt only when not runtime suspended
  can: flexcan: flexcan_chip_start(): fix erroneous flexcan_transceiver_enable() during bus-off recovery
  ...
parents 3be28e93 e6ea60ba
Loading
Loading
Loading
Loading
+13 −14
Original line number Diff line number Diff line
@@ -3233,10 +3233,10 @@ F: drivers/iio/accel/bma400*
BPF (Safe dynamic programs and tools)
M:	Alexei Starovoitov <ast@kernel.org>
M:	Daniel Borkmann <daniel@iogearbox.net>
M:	Andrii Nakryiko <andrii@kernel.org>
R:	Martin KaFai Lau <kafai@fb.com>
R:	Song Liu <songliubraving@fb.com>
R:	Yonghong Song <yhs@fb.com>
R:	Andrii Nakryiko <andrii@kernel.org>
R:	John Fastabend <john.fastabend@gmail.com>
R:	KP Singh <kpsingh@chromium.org>
L:	netdev@vger.kernel.org
@@ -4700,7 +4700,7 @@ T: git git://linuxtv.org/anttip/media_tree.git
F:	drivers/media/dvb-frontends/cxd2820r*
CXGB3 ETHERNET DRIVER (CXGB3)
M:	Vishal Kulkarni <vishal@chelsio.com>
M:	Raju Rangoju <rajur@chelsio.com>
L:	netdev@vger.kernel.org
S:	Supported
W:	http://www.chelsio.com
@@ -4732,7 +4732,7 @@ W: http://www.chelsio.com
F:	drivers/net/ethernet/chelsio/inline_crypto/
CXGB4 ETHERNET DRIVER (CXGB4)
M:	Vishal Kulkarni <vishal@chelsio.com>
M:	Raju Rangoju <rajur@chelsio.com>
L:	netdev@vger.kernel.org
S:	Supported
W:	http://www.chelsio.com
@@ -4754,7 +4754,7 @@ F: drivers/infiniband/hw/cxgb4/
F:	include/uapi/rdma/cxgb4-abi.h
CXGB4VF ETHERNET DRIVER (CXGB4VF)
M:	Vishal Kulkarni <vishal@gmail.com>
M:	Raju Rangoju <rajur@chelsio.com>
L:	netdev@vger.kernel.org
S:	Supported
W:	http://www.chelsio.com
@@ -9833,13 +9833,6 @@ S: Maintained
F:	arch/mips/lantiq
F:	drivers/soc/lantiq
LAPB module
L:	linux-x25@vger.kernel.org
S:	Orphan
F:	Documentation/networking/lapb-module.rst
F:	include/*/lapb.h
F:	net/lapb/
LASI 53c700 driver for PARISC
M:	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
L:	linux-scsi@vger.kernel.org
@@ -18991,12 +18984,18 @@ L: linux-kernel@vger.kernel.org
S:	Maintained
N:	axp[128]
X.25 NETWORK LAYER
M:	Andrew Hendry <andrew.hendry@gmail.com>
X.25 STACK
M:	Martin Schiller <ms@dev.tdt.de>
L:	linux-x25@vger.kernel.org
S:	Odd Fixes
S:	Maintained
F:	Documentation/networking/lapb-module.rst
F:	Documentation/networking/x25*
F:	drivers/net/wan/hdlc_x25.c
F:	drivers/net/wan/lapbether.c
F:	include/*/lapb.h
F:	include/net/x25*
F:	include/uapi/linux/x25.h
F:	net/lapb/
F:	net/x25/
X86 ARCHITECTURE (32-BIT AND 64-BIT)
+2 −0
Original line number Diff line number Diff line
@@ -1706,6 +1706,8 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)

	if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
		atomic_inc(&vcc->stats->tx_err);
		dma_unmap_single(&card->pcidev->dev, NS_PRV_DMA(skb), skb->len,
				 DMA_TO_DEVICE);
		dev_kfree_skb_any(skb);
		return -EIO;
	}
+1 −1
Original line number Diff line number Diff line
@@ -592,7 +592,7 @@ static void can_restart(struct net_device *dev)

	cf->can_id |= CAN_ERR_RESTARTED;

	netif_rx(skb);
	netif_rx_ni(skb);

	stats->rx_packets++;
	stats->rx_bytes += cf->can_dlc;
+16 −12
Original line number Diff line number Diff line
@@ -728,8 +728,10 @@ static int flexcan_get_berr_counter(const struct net_device *dev,
	int err;

	err = pm_runtime_get_sync(priv->dev);
	if (err < 0)
	if (err < 0) {
		pm_runtime_put_noidle(priv->dev);
		return err;
	}

	err = __flexcan_get_berr_counter(dev, bec);

@@ -1565,14 +1567,10 @@ static int flexcan_chip_start(struct net_device *dev)
		priv->write(reg_ctrl2, &regs->ctrl2);
	}

	err = flexcan_transceiver_enable(priv);
	if (err)
		goto out_chip_disable;

	/* synchronize with the can bus */
	err = flexcan_chip_unfreeze(priv);
	if (err)
		goto out_transceiver_disable;
		goto out_chip_disable;

	priv->can.state = CAN_STATE_ERROR_ACTIVE;

@@ -1590,8 +1588,6 @@ static int flexcan_chip_start(struct net_device *dev)

	return 0;

 out_transceiver_disable:
	flexcan_transceiver_disable(priv);
 out_chip_disable:
	flexcan_chip_disable(priv);
	return err;
@@ -1621,7 +1617,6 @@ static int __flexcan_chip_stop(struct net_device *dev, bool disable_on_error)
	priv->write(priv->reg_ctrl_default & ~FLEXCAN_CTRL_ERR_ALL,
		    &regs->ctrl);

	flexcan_transceiver_disable(priv);
	priv->can.state = CAN_STATE_STOPPED;

	return 0;
@@ -1654,17 +1649,23 @@ static int flexcan_open(struct net_device *dev)
	}

	err = pm_runtime_get_sync(priv->dev);
	if (err < 0)
	if (err < 0) {
		pm_runtime_put_noidle(priv->dev);
		return err;
	}

	err = open_candev(dev);
	if (err)
		goto out_runtime_put;

	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
	err = flexcan_transceiver_enable(priv);
	if (err)
		goto out_close;

	err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
	if (err)
		goto out_transceiver_disable;

	if (priv->can.ctrlmode & CAN_CTRLMODE_FD)
		priv->mb_size = sizeof(struct flexcan_mb) + CANFD_MAX_DLEN;
	else
@@ -1716,6 +1717,8 @@ static int flexcan_open(struct net_device *dev)
	can_rx_offload_del(&priv->offload);
 out_free_irq:
	free_irq(dev->irq, dev);
 out_transceiver_disable:
	flexcan_transceiver_disable(priv);
 out_close:
	close_candev(dev);
 out_runtime_put:
@@ -1734,6 +1737,7 @@ static int flexcan_close(struct net_device *dev)

	can_rx_offload_del(&priv->offload);
	free_irq(dev->irq, dev);
	flexcan_transceiver_disable(priv);

	close_candev(dev);
	pm_runtime_put(priv->dev);
@@ -1852,7 +1856,7 @@ static int flexcan_setup_stop_mode(struct platform_device *pdev)
		return -EINVAL;

	/* stop mode property format is:
	 * <&gpr req_gpr>.
	 * <&gpr req_gpr req_bit>.
	 */
	ret = of_property_read_u32_array(np, "fsl,stop-mode", out_val,
					 ARRAY_SIZE(out_val));
+2 −2
Original line number Diff line number Diff line
@@ -287,12 +287,12 @@ struct kvaser_pciefd_tx_packet {
static const struct can_bittiming_const kvaser_pciefd_bittiming_const = {
	.name = KVASER_PCIEFD_DRV_NAME,
	.tseg1_min = 1,
	.tseg1_max = 255,
	.tseg1_max = 512,
	.tseg2_min = 1,
	.tseg2_max = 32,
	.sjw_max = 16,
	.brp_min = 1,
	.brp_max = 4096,
	.brp_max = 8192,
	.brp_inc = 1,
};

Loading