Commit d759ee24 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Jakub Kicinski:
 "Including fixes from can, bluetooth and wireless.

  No known regressions at this point. Another calm week, but chances are
  that has more to do with vacation season than the quality of our work.

  Current release - new code bugs:

   - smc: prevent NULL pointer dereference in txopt_get

   - eth: ti: am65-cpsw: number of XDP-related fixes

  Previous releases - regressions:

   - Revert "Bluetooth: MGMT/SMP: Fix address type when using SMP over
     BREDR/LE", it breaks existing user space

   - Bluetooth: qca: if memdump doesn't work, re-enable IBS to avoid
     later problems with suspend

   - can: mcp251x: fix deadlock if an interrupt occurs during
     mcp251x_open

   - eth: r8152: fix the firmware communication error due to use of bulk
     write

   - ptp: ocp: fix serial port information export

   - eth: igb: fix not clearing TimeSync interrupts for 82580

   - Revert "wifi: ath11k: support hibernation", fix suspend on Lenovo

  Previous releases - always broken:

   - eth: intel: fix crashes and bugs when reconfiguration and resets
     happening in parallel

   - wifi: ath11k: fix NULL dereference in ath11k_mac_get_eirp_power()

  Misc:

   - docs: netdev: document guidance on cleanup.h"

* tag 'net-6.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (61 commits)
  ila: call nf_unregister_net_hooks() sooner
  tools/net/ynl: fix cli.py --subscribe feature
  MAINTAINERS: fix ptp ocp driver maintainers address
  selftests: net: enable bind tests
  net: dsa: vsc73xx: fix possible subblocks range of CAPT block
  sched: sch_cake: fix bulk flow accounting logic for host fairness
  docs: netdev: document guidance on cleanup.h
  net: xilinx: axienet: Fix race in axienet_stop
  net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN
  r8152: fix the firmware doesn't work
  fou: Fix null-ptr-deref in GRO.
  bareudp: Fix device stats updates.
  net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
  bpf, net: Fix a potential race in do_sock_getsockopt()
  net: dqs: Do not use extern for unused dql_group
  sch/netem: fix use after free in netem_dequeue
  usbnet: modern method to get random MAC
  MAINTAINERS: wifi: cw1200: add net-cw1200.h
  ice: do not bring the VSI up, if it was down before the XDP setup
  ice: remove ICE_CFG_BUSY locking from AF_XDP code
  ...
parents f9535999 031ae728
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -258,24 +258,29 @@ Description: (RW) When retrieving the PHC with the PTP SYS_OFFSET_EXTENDED
		the estimated point where the FPGA latches the PHC time.  This
		value may be changed by writing an unsigned integer.

What:		/sys/class/timecard/ocpN/ttyGNSS
What:		/sys/class/timecard/ocpN/ttyGNSS2
Date:		September 2021
What:		/sys/class/timecard/ocpN/tty
Date:		August 2024
Contact:	Vadim Fedorenko <vadim.fedorenko@linux.dev>
Description:	(RO) Directory containing the sysfs nodes for TTY attributes

What:		/sys/class/timecard/ocpN/tty/ttyGNSS
What:		/sys/class/timecard/ocpN/tty/ttyGNSS2
Date:		August 2024
Contact:	Jonathan Lemon <jonathan.lemon@gmail.com>
Description:	These optional attributes link to the TTY serial ports
		associated with the GNSS devices.
Description:	(RO) These optional attributes contain names of the TTY serial
		ports associated with the GNSS devices.

What:		/sys/class/timecard/ocpN/ttyMAC
Date:		September 2021
What:		/sys/class/timecard/ocpN/tty/ttyMAC
Date:		August 2024
Contact:	Jonathan Lemon <jonathan.lemon@gmail.com>
Description:	This optional attribute links to the TTY serial port
		associated with the Miniature Atomic Clock.
Description:	(RO) This optional attribute contains name of the TTY serial
		port associated with the Miniature Atomic Clock.

What:		/sys/class/timecard/ocpN/ttyNMEA
Date:		September 2021
What:		/sys/class/timecard/ocpN/tty/ttyNMEA
Date:		August 2024
Contact:	Jonathan Lemon <jonathan.lemon@gmail.com>
Description:	This optional attribute links to the TTY serial port
		which outputs the PHC time in NMEA ZDA format.
Description:	(RO) This optional attribute contains name of the TTY serial
		port which outputs the PHC time in NMEA ZDA format.

What:		/sys/class/timecard/ocpN/utc_tai_offset
Date:		September 2021
+16 −0
Original line number Diff line number Diff line
@@ -375,6 +375,22 @@ When working in existing code which uses nonstandard formatting make
your code follow the most recent guidelines, so that eventually all code
in the domain of netdev is in the preferred format.

Using device-managed and cleanup.h constructs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Netdev remains skeptical about promises of all "auto-cleanup" APIs,
including even ``devm_`` helpers, historically. They are not the preferred
style of implementation, merely an acceptable one.

Use of ``guard()`` is discouraged within any function longer than 20 lines,
``scoped_guard()`` is considered more readable. Using normal lock/unlock is
still (weakly) preferred.

Low level cleanup constructs (such as ``__free()``) can be used when building
APIs and helpers, especially scoped iterators. However, direct use of
``__free()`` within networking core and drivers is discouraged.
Similar guidance applies to declaring variables mid-function.

Resending after review
~~~~~~~~~~~~~~~~~~~~~~

+4 −1
Original line number Diff line number Diff line
@@ -5956,6 +5956,7 @@ F: Documentation/process/cve.rst
CW1200 WLAN driver
S:	Orphan
F:	drivers/net/wireless/st/cw1200/
F:	include/linux/platform_data/net-cw1200.h
CX18 VIDEO4LINUX DRIVER
M:	Andy Walls <awalls@md.metrocast.net>
@@ -15905,6 +15906,8 @@ F: include/uapi/linux/ethtool_netlink.h
F:	include/uapi/linux/if_*
F:	include/uapi/linux/netdev*
F:	tools/testing/selftests/drivers/net/
X:	Documentation/devicetree/bindings/net/bluetooth/
X:	Documentation/devicetree/bindings/net/wireless/
X:	drivers/net/wireless/
NETWORKING DRIVERS (WIRELESS)
@@ -17130,7 +17133,7 @@ F: include/dt-bindings/
OPENCOMPUTE PTP CLOCK DRIVER
M:	Jonathan Lemon <jonathan.lemon@gmail.com>
M:	Vadim Fedorenko <vadfed@linux.dev>
M:	Vadim Fedorenko <vadim.fedorenko@linux.dev>
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/ptp/ptp_ocp.c
+1 −0
Original line number Diff line number Diff line
@@ -1091,6 +1091,7 @@ static void qca_controller_memdump(struct work_struct *work)
				qca->memdump_state = QCA_MEMDUMP_COLLECTED;
				cancel_delayed_work(&qca->ctrl_memdump_timeout);
				clear_bit(QCA_MEMDUMP_COLLECTION, &qca->flags);
				clear_bit(QCA_IBS_DISABLED, &qca->flags);
				mutex_unlock(&qca->hci_memdump_lock);
				return;
			}
+11 −11
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)

		if (skb_copy_bits(skb, BAREUDP_BASE_HLEN, &ipversion,
				  sizeof(ipversion))) {
			bareudp->dev->stats.rx_dropped++;
			DEV_STATS_INC(bareudp->dev, rx_dropped);
			goto drop;
		}
		ipversion >>= 4;
@@ -93,7 +93,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
		} else if (ipversion == 6 && bareudp->multi_proto_mode) {
			proto = htons(ETH_P_IPV6);
		} else {
			bareudp->dev->stats.rx_dropped++;
			DEV_STATS_INC(bareudp->dev, rx_dropped);
			goto drop;
		}
	} else if (bareudp->ethertype == htons(ETH_P_MPLS_UC)) {
@@ -107,7 +107,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
				   ipv4_is_multicast(tunnel_hdr->daddr)) {
				proto = htons(ETH_P_MPLS_MC);
			} else {
				bareudp->dev->stats.rx_dropped++;
				DEV_STATS_INC(bareudp->dev, rx_dropped);
				goto drop;
			}
		} else {
@@ -123,7 +123,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
				   (addr_type & IPV6_ADDR_MULTICAST)) {
				proto = htons(ETH_P_MPLS_MC);
			} else {
				bareudp->dev->stats.rx_dropped++;
				DEV_STATS_INC(bareudp->dev, rx_dropped);
				goto drop;
			}
		}
@@ -135,7 +135,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
				 proto,
				 !net_eq(bareudp->net,
				 dev_net(bareudp->dev)))) {
		bareudp->dev->stats.rx_dropped++;
		DEV_STATS_INC(bareudp->dev, rx_dropped);
		goto drop;
	}

@@ -143,7 +143,7 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)

	tun_dst = udp_tun_rx_dst(skb, family, key, 0, 0);
	if (!tun_dst) {
		bareudp->dev->stats.rx_dropped++;
		DEV_STATS_INC(bareudp->dev, rx_dropped);
		goto drop;
	}
	skb_dst_set(skb, &tun_dst->dst);
@@ -169,8 +169,8 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
						     &((struct ipv6hdr *)oiph)->saddr);
		}
		if (err > 1) {
			++bareudp->dev->stats.rx_frame_errors;
			++bareudp->dev->stats.rx_errors;
			DEV_STATS_INC(bareudp->dev, rx_frame_errors);
			DEV_STATS_INC(bareudp->dev, rx_errors);
			goto drop;
		}
	}
@@ -467,11 +467,11 @@ static netdev_tx_t bareudp_xmit(struct sk_buff *skb, struct net_device *dev)
	dev_kfree_skb(skb);

	if (err == -ELOOP)
		dev->stats.collisions++;
		DEV_STATS_INC(dev, collisions);
	else if (err == -ENETUNREACH)
		dev->stats.tx_carrier_errors++;
		DEV_STATS_INC(dev, tx_carrier_errors);

	dev->stats.tx_errors++;
	DEV_STATS_INC(dev, tx_errors);
	return NETDEV_TX_OK;
}

Loading