Commit d20339fa authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from Paolo Abeni:
 "Including fixes from wireless and netfilter.

  Current release - regressions:

   - smc: fix af_ops of child socket pointing to released memory

   - wifi: ath9k: fix usage of driver-private space in tx_info

  Previous releases - regressions:

   - ipv6: fix panic when forwarding a pkt with no in6 dev

   - sctp: use the correct skb for security_sctp_assoc_request

   - smc: fix NULL pointer dereference in smc_pnet_find_ib()

   - sched: fix initialization order when updating chain 0 head

   - phy: don't defer probe forever if PHY IRQ provider is missing

   - dsa: revert "net: dsa: setup master before ports"

   - dsa: felix: fix tagging protocol changes with multiple CPU ports

   - eth: ice:
      - fix use-after-free when freeing @rx_cpu_rmap
      - revert "iavf: fix deadlock occurrence during resetting VF
        interface"

   - eth: lan966x: stop processing the MAC entry is port is wrong

  Previous releases - always broken:

   - sched:
      - flower: fix parsing of ethertype following VLAN header
      - taprio: check if socket flags are valid

   - nfc: add flush_workqueue to prevent uaf

   - veth: ensure eth header is in skb's linear part

   - eth: stmmac: fix altr_tse_pcs function when using a fixed-link

   - eth: macb: restart tx only if queue pointer is lagging

   - eth: macvlan: fix leaking skb in source mode with nodst option"

* tag 'net-5.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (52 commits)
  net: bcmgenet: Revert "Use stronger register read/writes to assure ordering"
  rtnetlink: Fix handling of disabled L3 stats in RTM_GETSTATS replies
  net: dsa: felix: fix tagging protocol changes with multiple CPU ports
  tun: annotate access to queue->trans_start
  nfc: nci: add flush_workqueue to prevent uaf
  net: dsa: realtek: don't parse compatible string for RTL8366S
  net: dsa: realtek: fix Kconfig to assure consistent driver linkage
  net: ftgmac100: access hardware register after clock ready
  Revert "net: dsa: setup master before ports"
  macvlan: Fix leaking skb in source mode with nodst option
  netfilter: nf_tables: nft_parse_register can return a negative value
  net: lan966x: Stop processing the MAC entry is port is wrong.
  net: lan966x: Fix when a port's upper is changed.
  net: lan966x: Fix IGMP snooping when frames have vlan tag
  net: lan966x: Update lan966x_ptp_get_nominal_value
  sctp: Initialize daddr on peeled off socket
  net/smc: Fix af_ops of child socket pointing to released memory
  net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
  net/smc: use memcpy instead of snprintf to avoid out of bounds read
  net: macb: Restart tx only if queue pointer is lagging
  ...
parents b9b4c79e 2df3fc4a
Loading
Loading
Loading
Loading
+39 −18
Original line number Diff line number Diff line
@@ -13,9 +13,6 @@ description: |
  This describes the devicetree bindings for AVE ethernet controller
  implemented on Socionext UniPhier SoCs.

allOf:
  - $ref: ethernet-controller.yaml#

properties:
  compatible:
    enum:
@@ -44,25 +41,13 @@ properties:
    minItems: 1
    maxItems: 4

  clock-names:
    oneOf:
      - items:          # for Pro4
          - const: gio
          - const: ether
          - const: ether-gb
          - const: ether-phy
      - const: ether    # for others
  clock-names: true

  resets:
    minItems: 1
    maxItems: 2

  reset-names:
    oneOf:
      - items:          # for Pro4
          - const: gio
          - const: ether
      - const: ether    # for others
  reset-names: true

  socionext,syscon-phy-mode:
    $ref: /schemas/types.yaml#/definitions/phandle-array
@@ -78,6 +63,42 @@ properties:
    $ref: mdio.yaml#
    unevaluatedProperties: false

allOf:
  - $ref: ethernet-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: socionext,uniphier-pro4-ave4
    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4
        clock-names:
          items:
            - const: gio
            - const: ether
            - const: ether-gb
            - const: ether-phy
        resets:
          minItems: 2
          maxItems: 2
        reset-names:
          items:
            - const: gio
            - const: ether
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          const: ether
        resets:
          maxItems: 1
        reset-names:
          const: ether

required:
  - compatible
  - reg
@@ -90,7 +111,7 @@ required:
  - reset-names
  - mdio

additionalProperties: false
unevaluatedProperties: false

examples:
  - |
+2 −2
Original line number Diff line number Diff line
@@ -894,7 +894,7 @@ xmit_hash_policy
		Uses XOR of hardware MAC addresses and packet type ID
		field to generate the hash. The formula is

		hash = source MAC XOR destination MAC XOR packet type ID
		hash = source MAC[5] XOR destination MAC[5] XOR packet type ID
		slave number = hash modulo slave count

		This algorithm will place all traffic to a particular
@@ -910,7 +910,7 @@ xmit_hash_policy
		Uses XOR of hardware MAC addresses and IP addresses to
		generate the hash.  The formula is

		hash = source MAC XOR destination MAC XOR packet type ID
		hash = source MAC[5] XOR destination MAC[5] XOR packet type ID
		hash = hash XOR source IP XOR destination IP
		hash = hash XOR (hash RSHIFT 16)
		hash = hash XOR (hash RSHIFT 8)
+3 −4
Original line number Diff line number Diff line
@@ -201,6 +201,7 @@ F: include/net/ieee80211_radiotap.h
F:	include/net/iw_handler.h
F:	include/net/wext.h
F:	include/uapi/linux/nl80211.h
F:	include/uapi/linux/wireless.h
F:	net/wireless/
8169 10/100/1000 GIGABIT ETHERNET DRIVER
@@ -12402,7 +12403,7 @@ F: drivers/mmc/host/mtk-sd.c
MEDIATEK MT76 WIRELESS LAN DRIVER
M:	Felix Fietkau <nbd@nbd.name>
M:	Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
M:	Lorenzo Bianconi <lorenzo@kernel.org>
M:	Ryder Lee <ryder.lee@mediatek.com>
R:	Shayne Chen <shayne.chen@mediatek.com>
R:	Sean Wang <sean.wang@mediatek.com>
@@ -21227,10 +21228,8 @@ S: Maintained
F:	drivers/hid/hid-wiimote*
WILOCITY WIL6210 WIRELESS DRIVER
M:	Maya Erez <merez@codeaurora.org>
L:	linux-wireless@vger.kernel.org
L:	wil6210@qti.qualcomm.com
S:	Supported
S:	Orphan
W:	https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
F:	drivers/net/wireless/ath/wil6210/
+1 −0
Original line number Diff line number Diff line
@@ -296,6 +296,7 @@ int driver_deferred_probe_check_state(struct device *dev)

	return -EPROBE_DEFER;
}
EXPORT_SYMBOL_GPL(driver_deferred_probe_check_state);

static void deferred_probe_timeout_work_func(struct work_struct *work)
{
+23 −0
Original line number Diff line number Diff line
@@ -670,6 +670,8 @@ static int felix_change_tag_protocol(struct dsa_switch *ds, int cpu,
	struct ocelot *ocelot = ds->priv;
	struct felix *felix = ocelot_to_felix(ocelot);
	enum dsa_tag_protocol old_proto = felix->tag_proto;
	bool cpu_port_active = false;
	struct dsa_port *dp;
	int err;

	if (proto != DSA_TAG_PROTO_SEVILLE &&
@@ -677,6 +679,27 @@ static int felix_change_tag_protocol(struct dsa_switch *ds, int cpu,
	    proto != DSA_TAG_PROTO_OCELOT_8021Q)
		return -EPROTONOSUPPORT;

	/* We don't support multiple CPU ports, yet the DT blob may have
	 * multiple CPU ports defined. The first CPU port is the active one,
	 * the others are inactive. In this case, DSA will call
	 * ->change_tag_protocol() multiple times, once per CPU port.
	 * Since we implement the tagging protocol change towards "ocelot" or
	 * "seville" as effectively initializing the NPI port, what we are
	 * doing is effectively changing who the NPI port is to the last @cpu
	 * argument passed, which is an unused DSA CPU port and not the one
	 * that should actively pass traffic.
	 * Suppress DSA's calls on CPU ports that are inactive.
	 */
	dsa_switch_for_each_user_port(dp, ds) {
		if (dp->cpu_dp->index == cpu) {
			cpu_port_active = true;
			break;
		}
	}

	if (!cpu_port_active)
		return 0;

	felix_del_tag_protocol(ds, cpu, old_proto);

	err = felix_set_tag_protocol(ds, cpu, proto);
Loading