]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: bump 6.18 to 6.18.36 23887/head
authorJohn Audia <therealgraysky@proton.me>
Fri, 19 Jun 2026 19:19:24 +0000 (15:19 -0400)
committerJonas Jelonek <jelonek.jonas@gmail.com>
Tue, 23 Jun 2026 07:05:22 +0000 (09:05 +0200)
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.36

Removed upstreamed:
  airoha/patches-6.18/162-v7.2-net-airoha-Fix-use-after-free-in-metadata-dst-teardo.patch[1]
  airoha/patches-6.18/164-v7.2-net-airoha-Add-NULL-check-for-of_reserved_mem_lookup.patch[2]

All other patches automatically rebased via update_kernel.sh

A new option was introduced with this release[3]. Updated configs on
affected targets: armsr/armv8 and rockchip/armv8.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.36&id=6f829e2c17a53a35321268339cd252aff6d6d723
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.36&id=01f7d4b504580664d36faea5671cde5e3f0d8a5b
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/arm64/Kconfig?id=v6.18.36&id2=v6.18.35

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23887
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
42 files changed:
target/linux/airoha/patches-6.18/096-v6.19-net-airoha-Add-missing-stats-to-ethtool_eth_mac_stat.patch
target/linux/airoha/patches-6.18/097-v6.19-net-airoha-Add-get_link-ethtool-callback.patch
target/linux/airoha/patches-6.18/099-09-v6.19-net-airoha-Select-default-ppe-cpu-port-in-airoha_dev.patch
target/linux/airoha/patches-6.18/120-v7.0-net-airoha-implement-get_link_ksettings.patch
target/linux/airoha/patches-6.18/125-v7.1-net-airoha-Rely-__field_prep-for-non-constant-masks.patch
target/linux/airoha/patches-6.18/126-v7.1-net-airoha-Make-flow-control-source-port-mapping-dep.patch
target/linux/airoha/patches-6.18/127-v7.1-net-airoha-Move-GDM-forward-port-configuration-in-nd.patch
target/linux/airoha/patches-6.18/129-v7.1-net-airoha-select-QDMA-block-according-LAN-WAN-confi.patch
target/linux/airoha/patches-6.18/132-v7.1-net-airoha-Reset-PPE-default-cput-port-in-airoha_ppe.patch
target/linux/airoha/patches-6.18/134-v7.1-net-airoha-Delay-offloading-until-all-net_devices-ar.patch
target/linux/airoha/patches-6.18/142-01-v7.1-net-airoha-Rely-on-net_device-pointer-in-airoha_dev_.patch
target/linux/airoha/patches-6.18/142-02-v7.1-net-airoha-Rely-on-net_device-pointer-in-HTB-callbac.patch
target/linux/airoha/patches-6.18/142-03-v7.1-net-airoha-Rely-on-net_device-pointer-in-ETS-callbac.patch
target/linux/airoha/patches-6.18/143-v7.1-net-airoha-Fix-typo-in-airoha_set_gdm2_loopback-rout.patch
target/linux/airoha/patches-6.18/147-v7.1-net-airoha-Fix-PPE-cpu-port-configuration-for-GDM2-l.patch
target/linux/airoha/patches-6.18/155-v7.2-net-airoha-Rename-get_src_port_id-callback-in-get_sp.patch
target/linux/airoha/patches-6.18/161-01-v7.2-net-airoha-Introduce-airoha_gdm_dev-struct.patch
target/linux/airoha/patches-6.18/161-02-v7.2-net-airoha-Move-airoha_qdma-pointer-in-airoha_gdm_de.patch
target/linux/airoha/patches-6.18/161-03-v7.2-net-airoha-Rely-on-airoha_gdm_dev-pointer-in-airoha_.patch
target/linux/airoha/patches-6.18/161-04-v7.2-net-airoha-Move-qos_sq_bmap-in-airoha_gdm_dev-struct.patch
target/linux/airoha/patches-6.18/161-05-v7.2-net-airoha-Move-cpu-fwd-_tx_packets-in-airoha_gdm_de.patch
target/linux/airoha/patches-6.18/161-06-v7.2-net-airoha-Rename-airoha_set_gdm2_loopback-in-airoha.patch
target/linux/airoha/patches-6.18/162-v7.2-net-airoha-Fix-use-after-free-in-metadata-dst-teardo.patch [deleted file]
target/linux/airoha/patches-6.18/163-v7.2-net-airoha-Report-extack-error-to-the-user-if-airoha.patch
target/linux/airoha/patches-6.18/164-v7.2-net-airoha-Add-NULL-check-for-of_reserved_mem_lookup.patch [deleted file]
target/linux/airoha/patches-6.18/801-01-net-phy-add-PHY_DETACH_NO_HW_RESET-PHY-flag.patch
target/linux/armsr/armv8/config-6.18
target/linux/generic/backport-6.18/711-v7.2-net-phy-sfp-detect-presence-via-I2C-when-no-MOD_DEF0-GPIO.patch
target/linux/generic/backport-6.18/746-v7.1-r8152-Add-support-for-5Gbit-Link-Speeds-and-EEE.patch
target/linux/generic/backport-6.18/747-v7.1-r8152-Add-support-for-the-RTL8157-hardware.patch
target/linux/generic/config-6.18
target/linux/generic/hack-6.18/780-usb-net-MeigLink_modem_support.patch
target/linux/generic/hack-6.18/901-debloat_sock_diag.patch
target/linux/generic/hack-6.18/902-debloat_proc.patch
target/linux/generic/kernel-6.18
target/linux/generic/pending-6.18/103-kbuild-export-SUBARCH.patch
target/linux/generic/pending-6.18/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
target/linux/generic/pending-6.18/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/mediatek/patches-6.18/901-arm-add-cmdline-override.patch
target/linux/realtek/patches-6.18/705-v7.1-net-sfp-initialize-i2c_block_size-at-adapter-configu.patch
target/linux/realtek/patches-6.18/714-net-phy-sfp-add-support-for-SMBus.patch
target/linux/rockchip/armv8/config-6.18

index 010b4fe6a40cffbc5d1e05010baab88c55545c05..0e579c4923d9564772eac0419193bb75932a02c5 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2160,8 +2160,12 @@ static void airoha_ethtool_get_mac_stats
+@@ -2163,8 +2163,12 @@ static void airoha_ethtool_get_mac_stats
        airoha_update_hw_stats(port);
        do {
                start = u64_stats_fetch_begin(&port->stats.syncp);
index 6ceae92cd211b01968a92bd02485d8f9ec519d35..f1f81fa08cb53bac5fec9cbcbfbf13d0b724f1d0 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2908,6 +2908,7 @@ static const struct ethtool_ops airoha_e
+@@ -2911,6 +2911,7 @@ static const struct ethtool_ops airoha_e
        .get_drvinfo            = airoha_ethtool_get_drvinfo,
        .get_eth_mac_stats      = airoha_ethtool_get_mac_stats,
        .get_rmon_stats         = airoha_ethtool_get_rmon_stats,
index 477d6e2d9dceb95a0a14ecdf60208d616954abe7..e9a82de897c2d21f254bc65dd626f23891fbd191 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        /* enable 1:N vlan action, init vlan table */
        airoha_fe_set(eth, REG_MC_VLAN_EN, MC_VLAN_EN_MASK);
  
-@@ -1853,8 +1834,10 @@ static int airhoha_set_gdm2_loopback(str
+@@ -1856,8 +1837,10 @@ static int airhoha_set_gdm2_loopback(str
  static int airoha_dev_init(struct net_device *dev)
  {
        struct airoha_gdm_port *port = netdev_priv(dev);
@@ -60,7 +60,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        airoha_set_macaddr(port, dev->dev_addr);
  
-@@ -1872,16 +1855,27 @@ static int airoha_dev_init(struct net_de
+@@ -1875,16 +1858,27 @@ static int airoha_dev_init(struct net_de
                fallthrough;
        case AIROHA_GDM2_IDX:
                if (airoha_ppe_is_enabled(eth, 1)) {
index 17e57d7c9743bdaf906c98e63b6729d28f04b32f..a15c17057e40b79434359f6d131eecac65af4164 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2902,6 +2902,7 @@ static const struct ethtool_ops airoha_e
+@@ -2905,6 +2905,7 @@ static const struct ethtool_ops airoha_e
        .get_drvinfo            = airoha_ethtool_get_drvinfo,
        .get_eth_mac_stats      = airoha_ethtool_get_mac_stats,
        .get_rmon_stats         = airoha_ethtool_get_rmon_stats,
index 91260a9794802263ba54600824a58cf171a62479..ac7e6ebdb1c5fdc7b8013cd04607535316f34dda 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1821,7 +1821,7 @@ static int airhoha_set_gdm2_loopback(str
+@@ -1824,7 +1824,7 @@ static int airhoha_set_gdm2_loopback(str
        airoha_fe_rmw(eth,
                      REG_SP_DFT_CPORT(src_port >> fls(SP_CPORT_DFT_MASK)),
                      SP_CPORT_MASK(val),
@@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        if (port->id != AIROHA_GDM3_IDX && airoha_is_7581(eth))
                airoha_fe_rmw(eth, REG_SRC_PORT_FC_MAP6,
-@@ -1875,7 +1875,7 @@ static int airoha_dev_init(struct net_de
+@@ -1878,7 +1878,7 @@ static int airoha_dev_init(struct net_de
        ppe_id = pse_port == FE_PSE_PORT_PPE2 ? 1 : 0;
        airoha_fe_rmw(eth, REG_PPE_DFT_CPORT0(ppe_id),
                      DFT_CPORT_MASK(port->id),
@@ -33,7 +33,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        return 0;
  }
-@@ -2235,7 +2235,7 @@ static int airoha_qdma_set_chan_tx_sched
+@@ -2238,7 +2238,7 @@ static int airoha_qdma_set_chan_tx_sched
  
        airoha_qdma_rmw(port->qdma, REG_CHAN_QOS_MODE(channel >> 3),
                        CHAN_QOS_MODE_MASK(channel),
index 6be83a301b0bba666cd8ff9ff187da01318709e4..8a4479bc2ceb055cc2c2bc9d762372d7ae580ff7 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1823,10 +1823,12 @@ static int airhoha_set_gdm2_loopback(str
+@@ -1826,10 +1826,12 @@ static int airhoha_set_gdm2_loopback(str
                      SP_CPORT_MASK(val),
                      __field_prep(SP_CPORT_MASK(val), FE_PSE_PORT_CDM2));
  
index 3b49e76b22e16ac10dcc0ccc3a3f15bfb76cfbe9..e44102acde5b6d39145dae64213fe387ecfd4a98 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1708,6 +1708,7 @@ static int airoha_dev_open(struct net_de
+@@ -1711,6 +1711,7 @@ static int airoha_dev_open(struct net_de
        int err, len = ETH_HLEN + dev->mtu + ETH_FCS_LEN;
        struct airoha_gdm_port *port = netdev_priv(dev);
        struct airoha_qdma *qdma = port->qdma;
@@ -26,7 +26,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        netif_tx_start_all_queues(dev);
        err = airoha_set_vip_for_gdm_port(port, true);
-@@ -1731,6 +1732,14 @@ static int airoha_dev_open(struct net_de
+@@ -1734,6 +1735,14 @@ static int airoha_dev_open(struct net_de
                        GLOBAL_CFG_RX_DMA_EN_MASK);
        atomic_inc(&qdma->users);
  
@@ -41,7 +41,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        return 0;
  }
  
-@@ -1745,6 +1754,9 @@ static int airoha_dev_stop(struct net_de
+@@ -1748,6 +1757,9 @@ static int airoha_dev_stop(struct net_de
        for (i = 0; i < dev->num_tx_queues; i++)
                netdev_tx_reset_subqueue(dev, i);
  
@@ -51,7 +51,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (atomic_dec_and_test(&qdma->users)) {
                airoha_qdma_clear(qdma, REG_QDMA_GLOBAL_CFG,
                                  GLOBAL_CFG_TX_DMA_EN_MASK |
-@@ -1838,7 +1850,7 @@ static int airoha_dev_init(struct net_de
+@@ -1841,7 +1853,7 @@ static int airoha_dev_init(struct net_de
        struct airoha_gdm_port *port = netdev_priv(dev);
        struct airoha_qdma *qdma = port->qdma;
        struct airoha_eth *eth = qdma->eth;
@@ -60,7 +60,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        u8 ppe_id;
  
        airoha_set_macaddr(port, dev->dev_addr);
-@@ -1859,7 +1871,7 @@ static int airoha_dev_init(struct net_de
+@@ -1862,7 +1874,7 @@ static int airoha_dev_init(struct net_de
                if (airoha_ppe_is_enabled(eth, 1)) {
                        /* For PPE2 always use secondary cpu port. */
                        fe_cpu_port = FE_PSE_PORT_CDM2;
@@ -69,7 +69,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                        break;
                }
                fallthrough;
-@@ -1868,13 +1880,11 @@ static int airoha_dev_init(struct net_de
+@@ -1871,13 +1883,11 @@ static int airoha_dev_init(struct net_de
  
                /* For PPE1 select cpu port according to the running QDMA. */
                fe_cpu_port = qdma_id ? FE_PSE_PORT_CDM2 : FE_PSE_PORT_CDM1;
index f8e489d9b7cdd5afcbd8f154f4d48eac639ce077..2119016a60cac0b109f2c07a81cf07b1fe0c5370 100644 (file)
@@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1848,11 +1848,13 @@ static int airhoha_set_gdm2_loopback(str
+@@ -1851,11 +1851,13 @@ static int airhoha_set_gdm2_loopback(str
  static int airoha_dev_init(struct net_device *dev)
  {
        struct airoha_gdm_port *port = netdev_priv(dev);
@@ -55,7 +55,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        airoha_set_macaddr(port, dev->dev_addr);
  
        switch (port->id) {
-@@ -1876,7 +1878,7 @@ static int airoha_dev_init(struct net_de
+@@ -1879,7 +1881,7 @@ static int airoha_dev_init(struct net_de
                }
                fallthrough;
        default: {
@@ -64,7 +64,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
                /* For PPE1 select cpu port according to the running QDMA. */
                fe_cpu_port = qdma_id ? FE_PSE_PORT_CDM2 : FE_PSE_PORT_CDM1;
-@@ -2963,11 +2965,10 @@ bool airoha_is_valid_gdm_port(struct air
+@@ -2966,11 +2968,10 @@ bool airoha_is_valid_gdm_port(struct air
  }
  
  static int airoha_alloc_gdm_port(struct airoha_eth *eth,
@@ -77,7 +77,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        struct net_device *dev;
        int err, p;
        u32 id;
-@@ -2998,7 +2999,6 @@ static int airoha_alloc_gdm_port(struct
+@@ -3001,7 +3002,6 @@ static int airoha_alloc_gdm_port(struct
                return -ENOMEM;
        }
  
@@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        dev->netdev_ops = &airoha_netdev_ops;
        dev->ethtool_ops = &airoha_ethtool_ops;
        dev->max_mtu = AIROHA_MAX_MTU;
-@@ -3010,7 +3010,6 @@ static int airoha_alloc_gdm_port(struct
+@@ -3013,7 +3013,6 @@ static int airoha_alloc_gdm_port(struct
        dev->features |= dev->hw_features;
        dev->vlan_features = dev->hw_features;
        dev->dev.of_node = np;
@@ -93,7 +93,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        SET_NETDEV_DEV(dev, eth->dev);
  
        /* reserve hw queues for HTB offloading */
-@@ -3031,7 +3030,7 @@ static int airoha_alloc_gdm_port(struct
+@@ -3034,7 +3033,7 @@ static int airoha_alloc_gdm_port(struct
        port = netdev_priv(dev);
        u64_stats_init(&port->stats.syncp);
        spin_lock_init(&port->stats.lock);
@@ -102,7 +102,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        port->dev = dev;
        port->id = id;
        /* XXX: Read nbq from DTS */
-@@ -3133,7 +3132,6 @@ static int airoha_probe(struct platform_
+@@ -3136,7 +3135,6 @@ static int airoha_probe(struct platform_
        for (i = 0; i < ARRAY_SIZE(eth->qdma); i++)
                airoha_qdma_start_napi(&eth->qdma[i]);
  
@@ -110,7 +110,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        for_each_child_of_node(pdev->dev.of_node, np) {
                if (!of_device_is_compatible(np, "airoha,eth-mac"))
                        continue;
-@@ -3141,7 +3139,7 @@ static int airoha_probe(struct platform_
+@@ -3144,7 +3142,7 @@ static int airoha_probe(struct platform_
                if (!of_device_is_available(np))
                        continue;
  
index 7262c7f3c71c624937dae7a92f2c727eccb16a32..6b28275fb44560540697e895509e61e5f2410bb5 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1849,8 +1849,7 @@ static int airoha_dev_init(struct net_de
+@@ -1852,8 +1852,7 @@ static int airoha_dev_init(struct net_de
  {
        struct airoha_gdm_port *port = netdev_priv(dev);
        struct airoha_eth *eth = port->eth;
@@ -42,7 +42,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  
        /* QDMA0 is used for lan ports while QDMA1 is used for WAN ports */
        port->qdma = &eth->qdma[!airoha_is_lan_gdm_port(port)];
-@@ -1868,28 +1867,13 @@ static int airoha_dev_init(struct net_de
+@@ -1871,28 +1870,13 @@ static int airoha_dev_init(struct net_de
                        if (err)
                                return err;
                }
@@ -75,7 +75,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
  
        return 0;
  }
-@@ -1992,7 +1976,7 @@ static u32 airoha_get_dsa_tag(struct sk_
+@@ -1995,7 +1979,7 @@ static u32 airoha_get_dsa_tag(struct sk_
  #endif
  }
  
index b0112a08ba4e86adb389455ea16ccd5efaf29e19..cc7ae728da7b802c8e55be55a2d1dd8644a01565 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -3040,6 +3040,8 @@ static int airoha_register_gdm_devices(s
+@@ -3043,6 +3043,8 @@ static int airoha_register_gdm_devices(s
                        return err;
        }
  
index a66538984f58486edded8d1e555c565a0f9949fa..f00ec63915e587511d4328e0ca8932aca41d3f54 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2752,7 +2752,7 @@ static int airoha_dev_setup_tc_block_cb(
+@@ -2755,7 +2755,7 @@ static int airoha_dev_setup_tc_block_cb(
        }
  }
  
@@ -29,7 +29,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                     struct flow_block_offload *f)
  {
        flow_setup_cb_t *cb = airoha_dev_setup_tc_block_cb;
-@@ -2765,12 +2765,12 @@ static int airoha_dev_setup_tc_block(str
+@@ -2768,12 +2768,12 @@ static int airoha_dev_setup_tc_block(str
        f->driver_block_list = &block_cb_list;
        switch (f->command) {
        case FLOW_BLOCK_BIND:
@@ -44,7 +44,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (IS_ERR(block_cb))
                        return PTR_ERR(block_cb);
  
-@@ -2779,7 +2779,7 @@ static int airoha_dev_setup_tc_block(str
+@@ -2782,7 +2782,7 @@ static int airoha_dev_setup_tc_block(str
                list_add_tail(&block_cb->driver_list, &block_cb_list);
                return 0;
        case FLOW_BLOCK_UNBIND:
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (!block_cb)
                        return -ENOENT;
  
-@@ -2878,7 +2878,7 @@ static int airoha_dev_tc_setup(struct ne
+@@ -2881,7 +2881,7 @@ static int airoha_dev_tc_setup(struct ne
                return airoha_tc_setup_qdisc_htb(port, type_data);
        case TC_SETUP_BLOCK:
        case TC_SETUP_FT:
index faad31a5881f9093b1b25e488e09cc9d4ee8d08b..6f64a8c35b17271843e043d4073e445bfc86aee5 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2557,10 +2557,11 @@ static int airoha_qdma_set_trtcm_token_b
+@@ -2560,10 +2560,11 @@ static int airoha_qdma_set_trtcm_token_b
                                           mode, val);
  }
  
@@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int i, err;
  
        for (i = 0; i <= TRTCM_PEAK_MODE; i++) {
-@@ -2580,21 +2581,20 @@ static int airoha_qdma_set_tx_rate_limit
+@@ -2583,21 +2584,20 @@ static int airoha_qdma_set_tx_rate_limit
        return 0;
  }
  
@@ -58,7 +58,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (err) {
                NL_SET_ERR_MSG_MOD(opt->extack,
                                   "failed configuring htb offload");
-@@ -2606,7 +2606,7 @@ static int airoha_tc_htb_alloc_leaf_queu
+@@ -2609,7 +2609,7 @@ static int airoha_tc_htb_alloc_leaf_queu
  
        err = netif_set_real_num_tx_queues(dev, num_tx_queues + 1);
        if (err) {
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                NL_SET_ERR_MSG_MOD(opt->extack,
                                   "failed setting real_num_tx_queues");
                return err;
-@@ -2793,44 +2793,47 @@ static int airoha_dev_setup_tc_block(str
+@@ -2796,44 +2796,47 @@ static int airoha_dev_setup_tc_block(str
        }
  }
  
@@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        if (!test_bit(channel, port->qos_sq_bmap)) {
                NL_SET_ERR_MSG_MOD(opt->extack, "invalid queue id");
-@@ -2842,23 +2845,23 @@ static int airoha_tc_get_htb_get_leaf_qu
+@@ -2845,23 +2848,23 @@ static int airoha_tc_get_htb_get_leaf_qu
        return 0;
  }
  
@@ -152,7 +152,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        default:
                return -EOPNOTSUPP;
        }
-@@ -2875,7 +2878,7 @@ static int airoha_dev_tc_setup(struct ne
+@@ -2878,7 +2881,7 @@ static int airoha_dev_tc_setup(struct ne
        case TC_SETUP_QDISC_ETS:
                return airoha_tc_setup_qdisc_ets(port, type_data);
        case TC_SETUP_QDISC_HTB:
index a9400d1fb8d4379b080fe7a4b7790eb81866bb03..8c3cdb49a582eaf62b5675cb164debe473b61bb0 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2203,10 +2203,11 @@ airoha_ethtool_get_rmon_stats(struct net
+@@ -2206,10 +2206,11 @@ airoha_ethtool_get_rmon_stats(struct net
        } while (u64_stats_fetch_retry(&port->stats.syncp, start));
  }
  
@@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int i;
  
        for (i = 0; i < AIROHA_NUM_TX_RING; i++)
-@@ -2238,17 +2239,15 @@ static int airoha_qdma_set_chan_tx_sched
+@@ -2241,17 +2242,15 @@ static int airoha_qdma_set_chan_tx_sched
        return 0;
  }
  
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                        struct tc_ets_qopt_offload *opt)
  {
        struct tc_ets_qopt_offload_replace_params *p = &opt->replace_params;
-@@ -2289,20 +2288,21 @@ static int airoha_qdma_set_tx_ets_sched(
+@@ -2292,20 +2291,21 @@ static int airoha_qdma_set_tx_ets_sched(
        else if (nstrict < AIROHA_NUM_QOS_QUEUES - 1)
                mode = nstrict + 1;
  
@@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        _bstats_update(opt->stats.bstats, 0, tx_packets);
  
        port->cpu_tx_packets = cpu_tx_packets;
-@@ -2311,7 +2311,7 @@ static int airoha_qdma_get_tx_ets_stats(
+@@ -2314,7 +2314,7 @@ static int airoha_qdma_get_tx_ets_stats(
        return 0;
  }
  
@@ -87,7 +87,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                     struct tc_ets_qopt_offload *opt)
  {
        int channel;
-@@ -2324,12 +2324,12 @@ static int airoha_tc_setup_qdisc_ets(str
+@@ -2327,12 +2327,12 @@ static int airoha_tc_setup_qdisc_ets(str
  
        switch (opt->command) {
        case TC_ETS_REPLACE:
@@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        default:
                return -EOPNOTSUPP;
        }
-@@ -2872,11 +2872,9 @@ static int airoha_tc_setup_qdisc_htb(str
+@@ -2875,11 +2875,9 @@ static int airoha_tc_setup_qdisc_htb(str
  static int airoha_dev_tc_setup(struct net_device *dev, enum tc_setup_type type,
                               void *type_data)
  {
index 5a491bd59e1755ec2672274fed43a847250afa6a..572f9cd0fb6dc9b46f1d71807ae6b7bd2a2ad45c 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1786,7 +1786,7 @@ static int airoha_dev_set_macaddr(struct
+@@ -1789,7 +1789,7 @@ static int airoha_dev_set_macaddr(struct
        return 0;
  }
  
@@ -24,7 +24,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
        struct airoha_eth *eth = port->qdma->eth;
        u32 val, pse_port, chan;
-@@ -1862,7 +1862,7 @@ static int airoha_dev_init(struct net_de
+@@ -1865,7 +1865,7 @@ static int airoha_dev_init(struct net_de
                if (!eth->ports[1]) {
                        int err;
  
index 56ac972956323a244bd1f82680b034f2fe7e919b..4d82199c0746bd8bbaa3807de62afad17fee54ae 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1791,7 +1791,7 @@ static int airoha_set_gdm2_loopback(stru
+@@ -1794,7 +1794,7 @@ static int airoha_set_gdm2_loopback(stru
  {
        struct airoha_eth *eth = port->qdma->eth;
        u32 val, pse_port, chan;
@@ -33,7 +33,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  
        airoha_set_gdm_port_fwd_cfg(eth, REG_GDM_FWD_CFG(AIROHA_GDM2_IDX),
                                    FE_PSE_PORT_DROP);
-@@ -1835,6 +1835,9 @@ static int airoha_set_gdm2_loopback(stru
+@@ -1838,6 +1838,9 @@ static int airoha_set_gdm2_loopback(stru
                      SP_CPORT_MASK(val),
                      __field_prep(SP_CPORT_MASK(val), FE_PSE_PORT_CDM2));
  
@@ -43,7 +43,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        if (port->id == AIROHA_GDM4_IDX && airoha_is_7581(eth)) {
                u32 mask = FC_ID_OF_SRC_PORT_MASK(port->nbq);
  
-@@ -1873,7 +1876,8 @@ static int airoha_dev_init(struct net_de
+@@ -1876,7 +1879,8 @@ static int airoha_dev_init(struct net_de
        }
  
        for (i = 0; i < eth->soc->num_ppe; i++)
index 65e0a597e09f2d4d7b4929c73a81f40f39690cb4..fba30f3206aa386f51dee6f0517570a7fe42c0ba 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1822,7 +1822,7 @@ static int airoha_set_gdm2_loopback(stru
+@@ -1825,7 +1825,7 @@ static int airoha_set_gdm2_loopback(stru
        airoha_fe_clear(eth, REG_FE_VIP_PORT_EN, BIT(AIROHA_GDM2_IDX));
        airoha_fe_clear(eth, REG_FE_IFC_PORT_EN, BIT(AIROHA_GDM2_IDX));
  
@@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (src_port < 0)
                return src_port;
  
-@@ -3196,7 +3196,7 @@ static const char * const en7581_xsi_rst
+@@ -3199,7 +3199,7 @@ static const char * const en7581_xsi_rst
        "xfp-mac",
  };
  
@@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
        switch (port->id) {
        case AIROHA_GDM3_IDX:
-@@ -3249,7 +3249,7 @@ static const char * const an7583_xsi_rst
+@@ -3252,7 +3252,7 @@ static const char * const an7583_xsi_rst
        "xfp-mac",
  };
  
@@ -44,7 +44,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
        switch (port->id) {
        case AIROHA_GDM3_IDX:
-@@ -3297,7 +3297,7 @@ static const struct airoha_eth_soc_data
+@@ -3300,7 +3300,7 @@ static const struct airoha_eth_soc_data
        .num_xsi_rsts = ARRAY_SIZE(en7581_xsi_rsts_names),
        .num_ppe = 2,
        .ops = {
@@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                .get_vip_port = airoha_en7581_get_vip_port,
        },
  };
-@@ -3308,7 +3308,7 @@ static const struct airoha_eth_soc_data
+@@ -3311,7 +3311,7 @@ static const struct airoha_eth_soc_data
        .num_xsi_rsts = ARRAY_SIZE(an7583_xsi_rsts_names),
        .num_ppe = 1,
        .ops = {
index f6c5f766f217f0efa22887e0f6de2f7c06ada2d1..c095e00cfcde30c79e5c78e8593970c2c3928921 100644 (file)
@@ -88,7 +88,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                }
        }
        q->txq_stopped = false;
-@@ -1700,19 +1707,20 @@ static void airoha_update_hw_stats(struc
+@@ -1703,19 +1710,20 @@ static void airoha_update_hw_stats(struc
        spin_unlock(&port->stats.lock);
  }
  
@@ -114,7 +114,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                airoha_fe_set(qdma->eth, REG_GDM_INGRESS_CFG(port->id),
                              GDM_STAG_EN_MASK);
        else
-@@ -1740,16 +1748,17 @@ static int airoha_dev_open(struct net_de
+@@ -1743,16 +1751,17 @@ static int airoha_dev_open(struct net_de
        return 0;
  }
  
@@ -137,7 +137,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        airoha_set_gdm_port_fwd_cfg(qdma->eth, REG_GDM_FWD_CFG(port->id),
                                    FE_PSE_PORT_DROP);
-@@ -1770,16 +1779,17 @@ static int airoha_dev_stop(struct net_de
+@@ -1773,16 +1782,17 @@ static int airoha_dev_stop(struct net_de
        return 0;
  }
  
@@ -159,7 +159,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        return 0;
  }
-@@ -1845,16 +1855,17 @@ static int airoha_set_gdm2_loopback(stru
+@@ -1848,16 +1858,17 @@ static int airoha_set_gdm2_loopback(stru
        return 0;
  }
  
@@ -182,7 +182,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        switch (port->id) {
        case AIROHA_GDM3_IDX:
-@@ -1879,10 +1890,11 @@ static int airoha_dev_init(struct net_de
+@@ -1882,10 +1893,11 @@ static int airoha_dev_init(struct net_de
        return 0;
  }
  
@@ -196,7 +196,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        unsigned int start;
  
        airoha_update_hw_stats(port);
-@@ -1901,36 +1913,39 @@ static void airoha_dev_get_stats64(struc
+@@ -1904,36 +1916,39 @@ static void airoha_dev_get_stats64(struc
        } while (u64_stats_fetch_retry(&port->stats.syncp, start));
  }
  
@@ -243,7 +243,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static u32 airoha_get_dsa_tag(struct sk_buff *skb, struct net_device *dev)
-@@ -1994,9 +2009,10 @@ int airoha_get_fe_port(struct airoha_gdm
+@@ -1997,9 +2012,10 @@ int airoha_get_fe_port(struct airoha_gdm
  }
  
  static netdev_tx_t airoha_dev_xmit(struct sk_buff *skb,
@@ -256,7 +256,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        struct airoha_qdma *qdma = port->qdma;
        u32 nr_frags, tag, msg0, msg1, len;
        struct airoha_queue_entry *e;
-@@ -2009,7 +2025,7 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2012,7 +2028,7 @@ static netdev_tx_t airoha_dev_xmit(struc
        u8 fport;
  
        qid = airoha_qdma_get_txq(qdma, skb_get_queue_mapping(skb));
@@ -265,7 +265,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        msg0 = FIELD_PREP(QDMA_ETH_TXMSG_CHAN_MASK,
                          qid / AIROHA_NUM_QOS_QUEUES) |
-@@ -2045,7 +2061,7 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2048,7 +2064,7 @@ static netdev_tx_t airoha_dev_xmit(struc
  
        spin_lock_bh(&q->lock);
  
@@ -274,7 +274,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        nr_frags = 1 + skb_shinfo(skb)->nr_frags;
  
        if (q->queued + nr_frags >= q->ndesc) {
-@@ -2069,9 +2085,9 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2072,9 +2088,9 @@ static netdev_tx_t airoha_dev_xmit(struc
                dma_addr_t addr;
                u32 val;
  
@@ -286,7 +286,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        goto error_unmap;
  
                list_move_tail(&e->list, &tx_list);
-@@ -2120,7 +2136,7 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2123,7 +2139,7 @@ static netdev_tx_t airoha_dev_xmit(struc
  
  error_unmap:
        list_for_each_entry(e, &tx_list, list) {
@@ -295,7 +295,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                 DMA_TO_DEVICE);
                e->dma_addr = 0;
        }
-@@ -2129,25 +2145,27 @@ error_unmap:
+@@ -2132,25 +2148,27 @@ error_unmap:
        spin_unlock_bh(&q->lock);
  error:
        dev_kfree_skb_any(skb);
@@ -328,7 +328,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        unsigned int start;
  
        airoha_update_hw_stats(port);
-@@ -2175,11 +2193,12 @@ static const struct ethtool_rmon_hist_ra
+@@ -2178,11 +2196,12 @@ static const struct ethtool_rmon_hist_ra
  };
  
  static void
@@ -343,7 +343,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        struct airoha_hw_stats *hw_stats = &port->stats;
        unsigned int start;
  
-@@ -2204,11 +2223,12 @@ airoha_ethtool_get_rmon_stats(struct net
+@@ -2207,11 +2226,12 @@ airoha_ethtool_get_rmon_stats(struct net
        } while (u64_stats_fetch_retry(&port->stats.syncp, start));
  }
  
@@ -358,7 +358,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int i;
  
        for (i = 0; i < AIROHA_NUM_TX_RING; i++)
-@@ -2293,10 +2313,12 @@ static int airoha_qdma_set_tx_ets_sched(
+@@ -2296,10 +2316,12 @@ static int airoha_qdma_set_tx_ets_sched(
                                             ARRAY_SIZE(w));
  }
  
@@ -373,7 +373,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u64 cpu_tx_packets = airoha_qdma_rr(port->qdma,
                                            REG_CNTR_VAL(channel << 1));
        u64 fwd_tx_packets = airoha_qdma_rr(port->qdma,
-@@ -2558,11 +2580,12 @@ static int airoha_qdma_set_trtcm_token_b
+@@ -2561,11 +2583,12 @@ static int airoha_qdma_set_trtcm_token_b
                                           mode, val);
  }
  
@@ -388,7 +388,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int i, err;
  
        for (i = 0; i <= TRTCM_PEAK_MODE; i++) {
-@@ -2582,20 +2605,22 @@ static int airoha_qdma_set_tx_rate_limit
+@@ -2585,20 +2608,22 @@ static int airoha_qdma_set_tx_rate_limit
        return 0;
  }
  
@@ -415,7 +415,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (err) {
                NL_SET_ERR_MSG_MOD(opt->extack,
                                   "failed configuring htb offload");
-@@ -2605,9 +2630,10 @@ static int airoha_tc_htb_alloc_leaf_queu
+@@ -2608,9 +2633,10 @@ static int airoha_tc_htb_alloc_leaf_queu
        if (opt->command == TC_HTB_NODE_MODIFY)
                return 0;
  
@@ -428,7 +428,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                NL_SET_ERR_MSG_MOD(opt->extack,
                                   "failed setting real_num_tx_queues");
                return err;
-@@ -2697,11 +2723,12 @@ static int airoha_tc_matchall_act_valida
+@@ -2700,11 +2726,12 @@ static int airoha_tc_matchall_act_valida
        return 0;
  }
  
@@ -443,7 +443,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 rate = 0, bucket_size = 0;
  
        switch (f->command) {
-@@ -2736,18 +2763,19 @@ static int airoha_dev_tc_matchall(struct
+@@ -2739,18 +2766,19 @@ static int airoha_dev_tc_matchall(struct
  static int airoha_dev_setup_tc_block_cb(enum tc_setup_type type,
                                        void *type_data, void *cb_priv)
  {
@@ -467,7 +467,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        default:
                return -EOPNOTSUPP;
        }
-@@ -2794,47 +2822,51 @@ static int airoha_dev_setup_tc_block(str
+@@ -2797,47 +2825,51 @@ static int airoha_dev_setup_tc_block(str
        }
  }
  
@@ -531,7 +531,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        if (!test_bit(channel, port->qos_sq_bmap)) {
                NL_SET_ERR_MSG_MOD(opt->extack, "invalid queue id");
-@@ -2870,8 +2902,8 @@ static int airoha_tc_setup_qdisc_htb(str
+@@ -2873,8 +2905,8 @@ static int airoha_tc_setup_qdisc_htb(str
        return 0;
  }
  
@@ -542,7 +542,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
        switch (type) {
        case TC_SETUP_QDISC_ETS:
-@@ -2937,25 +2969,81 @@ static void airoha_metadata_dst_free(str
+@@ -2940,25 +2972,81 @@ static void airoha_metadata_dst_free(str
        }
  }
  
@@ -628,7 +628,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int err, p;
        u32 id;
  
-@@ -2977,53 +3065,22 @@ static int airoha_alloc_gdm_port(struct
+@@ -2980,53 +3068,22 @@ static int airoha_alloc_gdm_port(struct
                return -EINVAL;
        }
  
@@ -689,7 +689,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static int airoha_register_gdm_devices(struct airoha_eth *eth)
-@@ -3037,7 +3094,7 @@ static int airoha_register_gdm_devices(s
+@@ -3040,7 +3097,7 @@ static int airoha_register_gdm_devices(s
                if (!port)
                        continue;
  
@@ -698,7 +698,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                if (err)
                        return err;
        }
-@@ -3146,12 +3203,14 @@ error_napi_stop:
+@@ -3149,12 +3206,14 @@ error_napi_stop:
  
        for (i = 0; i < ARRAY_SIZE(eth->ports); i++) {
                struct airoha_gdm_port *port = eth->ports[i];
@@ -715,7 +715,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                airoha_metadata_dst_free(port);
        }
        airoha_hw_cleanup(eth);
-@@ -3172,11 +3231,14 @@ static void airoha_remove(struct platfor
+@@ -3175,11 +3234,14 @@ static void airoha_remove(struct platfor
  
        for (i = 0; i < ARRAY_SIZE(eth->ports); i++) {
                struct airoha_gdm_port *port = eth->ports[i];
index 78388f5c63040b7aec061cae34e179b384bf7b25..bca63f5ec68faab006e05b4e30ec33681e581509 100644 (file)
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                for (j = 0; j < dev->dev->num_tx_queues; j++) {
                        if (airoha_qdma_get_txq(qdma, j) != qid)
                                continue;
-@@ -1563,9 +1567,10 @@ static void airoha_qdma_stop_napi(struct
+@@ -1566,9 +1570,10 @@ static void airoha_qdma_stop_napi(struct
        }
  }
  
@@ -88,7 +88,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 val, i = 0;
  
        spin_lock(&port->stats.lock);
-@@ -1712,11 +1717,11 @@ static int airoha_dev_open(struct net_de
+@@ -1715,11 +1720,11 @@ static int airoha_dev_open(struct net_de
        int err, len = ETH_HLEN + netdev->mtu + ETH_FCS_LEN;
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
        struct airoha_gdm_port *port = dev->port;
@@ -102,7 +102,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        if (err)
                return err;
  
-@@ -1752,11 +1757,11 @@ static int airoha_dev_stop(struct net_de
+@@ -1755,11 +1760,11 @@ static int airoha_dev_stop(struct net_de
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
        struct airoha_gdm_port *port = dev->port;
@@ -116,7 +116,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        for (i = 0; i < netdev->num_tx_queues; i++)
                netdev_tx_reset_subqueue(netdev, i);
  
-@@ -1782,21 +1787,21 @@ static int airoha_dev_stop(struct net_de
+@@ -1785,21 +1790,21 @@ static int airoha_dev_stop(struct net_de
  static int airoha_dev_set_macaddr(struct net_device *netdev, void *p)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -142,7 +142,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 val, pse_port, chan;
        int i, src_port;
  
-@@ -1843,7 +1848,7 @@ static int airoha_set_gdm2_loopback(stru
+@@ -1846,7 +1851,7 @@ static int airoha_set_gdm2_loopback(stru
                      __field_prep(SP_CPORT_MASK(val), FE_PSE_PORT_CDM2));
  
        for (i = 0; i < eth->soc->num_ppe; i++)
@@ -151,7 +151,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        if (port->id == AIROHA_GDM4_IDX && airoha_is_7581(eth)) {
                u32 mask = FC_ID_OF_SRC_PORT_MASK(port->nbq);
-@@ -1863,9 +1868,9 @@ static int airoha_dev_init(struct net_de
+@@ -1866,9 +1871,9 @@ static int airoha_dev_init(struct net_de
        int i;
  
        /* QDMA0 is used for lan ports while QDMA1 is used for WAN ports */
@@ -164,7 +164,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        switch (port->id) {
        case AIROHA_GDM3_IDX:
-@@ -1874,7 +1879,7 @@ static int airoha_dev_init(struct net_de
+@@ -1877,7 +1882,7 @@ static int airoha_dev_init(struct net_de
                if (!eth->ports[1]) {
                        int err;
  
@@ -173,7 +173,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        if (err)
                                return err;
                }
-@@ -1884,8 +1889,7 @@ static int airoha_dev_init(struct net_de
+@@ -1887,8 +1892,7 @@ static int airoha_dev_init(struct net_de
        }
  
        for (i = 0; i < eth->soc->num_ppe; i++)
@@ -183,7 +183,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        return 0;
  }
-@@ -1897,7 +1901,7 @@ static void airoha_dev_get_stats64(struc
+@@ -1900,7 +1904,7 @@ static void airoha_dev_get_stats64(struc
        struct airoha_gdm_port *port = dev->port;
        unsigned int start;
  
@@ -192,7 +192,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        do {
                start = u64_stats_fetch_begin(&port->stats.syncp);
                storage->rx_packets = port->stats.rx_ok_pkts;
-@@ -1917,8 +1921,8 @@ static int airoha_dev_change_mtu(struct
+@@ -1920,8 +1924,8 @@ static int airoha_dev_change_mtu(struct
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
        struct airoha_gdm_port *port = dev->port;
@@ -202,7 +202,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        airoha_fe_rmw(eth, REG_GDM_LEN_CFG(port->id),
                      GDM_LONG_LEN_MASK,
-@@ -1992,10 +1996,10 @@ static u32 airoha_get_dsa_tag(struct sk_
+@@ -1995,10 +1999,10 @@ static u32 airoha_get_dsa_tag(struct sk_
  #endif
  }
  
@@ -216,7 +216,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        switch (eth->soc->version) {
        case 0x7583:
-@@ -2012,8 +2016,7 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2015,8 +2019,7 @@ static netdev_tx_t airoha_dev_xmit(struc
                                   struct net_device *netdev)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -226,7 +226,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 nr_frags, tag, msg0, msg1, len;
        struct airoha_queue_entry *e;
        struct netdev_queue *txq;
-@@ -2051,7 +2054,7 @@ static netdev_tx_t airoha_dev_xmit(struc
+@@ -2054,7 +2057,7 @@ static netdev_tx_t airoha_dev_xmit(struc
                }
        }
  
@@ -235,7 +235,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        msg1 = FIELD_PREP(QDMA_ETH_TXMSG_FPORT_MASK, fport) |
               FIELD_PREP(QDMA_ETH_TXMSG_METER_MASK, 0x7f);
  
-@@ -2154,8 +2157,7 @@ static void airoha_ethtool_get_drvinfo(s
+@@ -2157,8 +2160,7 @@ static void airoha_ethtool_get_drvinfo(s
                                       struct ethtool_drvinfo *info)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -245,7 +245,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        strscpy(info->driver, eth->dev->driver->name, sizeof(info->driver));
        strscpy(info->bus_info, dev_name(eth->dev), sizeof(info->bus_info));
-@@ -2168,7 +2170,7 @@ static void airoha_ethtool_get_mac_stats
+@@ -2171,7 +2173,7 @@ static void airoha_ethtool_get_mac_stats
        struct airoha_gdm_port *port = dev->port;
        unsigned int start;
  
@@ -254,7 +254,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        do {
                start = u64_stats_fetch_begin(&port->stats.syncp);
                stats->FramesTransmittedOK = port->stats.tx_ok_pkts;
-@@ -2208,7 +2210,7 @@ airoha_ethtool_get_rmon_stats(struct net
+@@ -2211,7 +2213,7 @@ airoha_ethtool_get_rmon_stats(struct net
                     ARRAY_SIZE(hw_stats->rx_len) + 1);
  
        *ranges = airoha_ethtool_rmon_ranges;
@@ -263,7 +263,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        do {
                int i;
  
-@@ -2228,18 +2230,17 @@ static int airoha_qdma_set_chan_tx_sched
+@@ -2231,18 +2233,17 @@ static int airoha_qdma_set_chan_tx_sched
                                         const u16 *weights, u8 n_weights)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -284,7 +284,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                               TWRR_RW_CMD_MASK |
                               FIELD_PREP(TWRR_CHAN_IDX_MASK, channel) |
                               FIELD_PREP(TWRR_QUEUE_IDX_MASK, i) |
-@@ -2247,13 +2248,12 @@ static int airoha_qdma_set_chan_tx_sched
+@@ -2250,13 +2251,12 @@ static int airoha_qdma_set_chan_tx_sched
                err = read_poll_timeout(airoha_qdma_rr, status,
                                        status & TWRR_RW_CMD_DONE,
                                        USEC_PER_MSEC, 10 * USEC_PER_MSEC,
@@ -300,7 +300,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                        CHAN_QOS_MODE_MASK(channel),
                        __field_prep(CHAN_QOS_MODE_MASK(channel), mode));
  
-@@ -2319,9 +2319,9 @@ static int airoha_qdma_get_tx_ets_stats(
+@@ -2322,9 +2322,9 @@ static int airoha_qdma_get_tx_ets_stats(
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
        struct airoha_gdm_port *port = dev->port;
  
@@ -312,7 +312,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                            REG_CNTR_VAL((channel << 1) + 1));
        u64 tx_packets = (cpu_tx_packets - port->cpu_tx_packets) +
                         (fwd_tx_packets - port->fwd_tx_packets);
-@@ -2585,17 +2585,16 @@ static int airoha_qdma_set_tx_rate_limit
+@@ -2588,17 +2588,16 @@ static int airoha_qdma_set_tx_rate_limit
                                         u32 bucket_size)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -332,7 +332,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                                         REG_EGRESS_TRTCM_CFG,
                                                         i, rate, bucket_size);
                if (err)
-@@ -2645,11 +2644,11 @@ static int airoha_tc_htb_alloc_leaf_queu
+@@ -2648,11 +2647,11 @@ static int airoha_tc_htb_alloc_leaf_queu
        return 0;
  }
  
@@ -346,7 +346,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        int i;
  
        for (i = 0; i < ARRAY_SIZE(qdma->q_rx); i++) {
-@@ -2728,7 +2727,6 @@ static int airoha_dev_tc_matchall(struct
+@@ -2731,7 +2730,6 @@ static int airoha_dev_tc_matchall(struct
  {
        enum trtcm_unit_type unit_type = TRTCM_BYTE_UNIT;
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -354,7 +354,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        u32 rate = 0, bucket_size = 0;
  
        switch (f->command) {
-@@ -2753,7 +2751,7 @@ static int airoha_dev_tc_matchall(struct
+@@ -2756,7 +2754,7 @@ static int airoha_dev_tc_matchall(struct
                fallthrough;
        }
        case TC_CLSMATCHALL_DESTROY:
@@ -363,7 +363,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                                                unit_type);
        default:
                return -EOPNOTSUPP;
-@@ -2765,8 +2763,7 @@ static int airoha_dev_setup_tc_block_cb(
+@@ -2768,8 +2766,7 @@ static int airoha_dev_setup_tc_block_cb(
  {
        struct net_device *netdev = cb_priv;
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
index 072089fe8b916c9814c2dec788567316c8388677..8aeede07f37ada2e3c166036318e6d96281decf5 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        val = (addr[0] << 16) | (addr[1] << 8) | addr[2];
        airoha_fe_wr(eth, reg, val);
  
-@@ -1868,7 +1866,7 @@ static int airoha_dev_init(struct net_de
+@@ -1871,7 +1869,7 @@ static int airoha_dev_init(struct net_de
        int i;
  
        /* QDMA0 is used for lan ports while QDMA1 is used for WAN ports */
index b35b1b0a6986f2c1179aea185b8dcfd40368e973..f87c99a35fd5d202782bbcd1a285dd9064926e5d 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2602,30 +2602,40 @@ static int airoha_qdma_set_tx_rate_limit
+@@ -2605,30 +2605,40 @@ static int airoha_qdma_set_tx_rate_limit
        return 0;
  }
  
@@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  
        err = netif_set_real_num_tx_queues(netdev, num_tx_queues + 1);
        if (err) {
-@@ -2633,13 +2643,17 @@ static int airoha_tc_htb_alloc_leaf_queu
+@@ -2636,13 +2646,17 @@ static int airoha_tc_htb_alloc_leaf_queu
                                              opt->quantum);
                NL_SET_ERR_MSG_MOD(opt->extack,
                                   "failed setting real_num_tx_queues");
@@ -95,7 +95,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static int airoha_qdma_set_rx_meter(struct airoha_gdm_dev *dev,
-@@ -2820,11 +2834,13 @@ static int airoha_dev_setup_tc_block(str
+@@ -2823,11 +2837,13 @@ static int airoha_dev_setup_tc_block(str
  static void airoha_tc_remove_htb_queue(struct net_device *netdev, int queue)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -111,7 +111,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  }
  
  static int airoha_tc_htb_delete_leaf_queue(struct net_device *netdev,
-@@ -2832,9 +2848,8 @@ static int airoha_tc_htb_delete_leaf_que
+@@ -2835,9 +2851,8 @@ static int airoha_tc_htb_delete_leaf_que
  {
        u32 channel = TC_H_MIN(opt->classid) % AIROHA_NUM_QOS_CHANNELS;
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -122,7 +122,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                NL_SET_ERR_MSG_MOD(opt->extack, "invalid queue id");
                return -EINVAL;
        }
-@@ -2847,10 +2862,9 @@ static int airoha_tc_htb_delete_leaf_que
+@@ -2850,10 +2865,9 @@ static int airoha_tc_htb_delete_leaf_que
  static int airoha_tc_htb_destroy(struct net_device *netdev)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -134,7 +134,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                airoha_tc_remove_htb_queue(netdev, q);
  
        return 0;
-@@ -2861,9 +2875,8 @@ static int airoha_tc_get_htb_get_leaf_qu
+@@ -2864,9 +2878,8 @@ static int airoha_tc_get_htb_get_leaf_qu
  {
        u32 channel = TC_H_MIN(opt->classid) % AIROHA_NUM_QOS_CHANNELS;
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
@@ -145,7 +145,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
                NL_SET_ERR_MSG_MOD(opt->extack, "invalid queue id");
                return -EINVAL;
        }
-@@ -2882,6 +2895,7 @@ static int airoha_tc_setup_qdisc_htb(str
+@@ -2885,6 +2898,7 @@ static int airoha_tc_setup_qdisc_htb(str
        case TC_HTB_DESTROY:
                return airoha_tc_htb_destroy(dev);
        case TC_HTB_NODE_MODIFY:
index cb62a387b612efdf7c3489e48787d906ffd675ad..df6ca1ca1c9889bd1427a88455f4e7bf45ef2bc5 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2315,19 +2315,17 @@ static int airoha_qdma_get_tx_ets_stats(
+@@ -2318,19 +2318,17 @@ static int airoha_qdma_get_tx_ets_stats(
                                        struct tc_ets_qopt_offload *opt)
  {
        struct airoha_gdm_dev *dev = netdev_priv(netdev);
index eaf4d8e426e22e75152b48d67a3799807e3ac427..3e84250b0fe95c1a4d73566a5f640482c6b796c7 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1796,7 +1796,7 @@ static int airoha_dev_set_macaddr(struct
+@@ -1799,7 +1799,7 @@ static int airoha_dev_set_macaddr(struct
        return 0;
  }
  
@@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  {
        struct airoha_gdm_port *port = dev->port;
        struct airoha_eth *eth = dev->eth;
-@@ -1877,7 +1877,7 @@ static int airoha_dev_init(struct net_de
+@@ -1880,7 +1880,7 @@ static int airoha_dev_init(struct net_de
                if (!eth->ports[1]) {
                        int err;
  
diff --git a/target/linux/airoha/patches-6.18/162-v7.2-net-airoha-Fix-use-after-free-in-metadata-dst-teardo.patch b/target/linux/airoha/patches-6.18/162-v7.2-net-airoha-Fix-use-after-free-in-metadata-dst-teardo.patch
deleted file mode 100644 (file)
index 7ea6058..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From b38cae85d1c45ff189d7ecb6ac36f41cdc3d84d0 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Tue, 2 Jun 2026 11:21:04 +0200
-Subject: [PATCH] net: airoha: Fix use-after-free in metadata dst teardown
-
-airoha_metadata_dst_free() runs metadata_dst_free() which frees the
-metadata_dst with kfree() immediately, bypassing the RCU grace period.
-In the RX path, skb_dst_set_noref() sets a non-refcounted pointer from
-the skb to the metadata_dst. This function requires RCU read-side
-protection and the dst must remain valid until all RCU readers complete.
-Since metadata_dst_free() calls kfree() directly, an use-after-free can
-occur if any skb still holds a noref pointer to the dst when the driver
-tears it down.
-Replace metadata_dst_free() with dst_release() which properly goes
-through the refcount path: when the refcount drops to zero, it schedules
-the actual free via call_rcu_hurry(), ensuring all RCU readers have
-completed before the memory is freed.
-
-Fixes: af3cf757d5c9 ("net: airoha: Move DSA tag in DMA descriptor")
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Link: https://patch.msgid.link/20260602-airoha-mtk-metadata-uaf-fix-v1-1-3aaa99d83351@kernel.org
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_eth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/airoha/airoha_eth.c
-+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2972,7 +2972,7 @@ static void airoha_metadata_dst_free(str
-               if (!port->dsa_meta[i])
-                       continue;
--              metadata_dst_free(port->dsa_meta[i]);
-+              dst_release(&port->dsa_meta[i]->dst);
-       }
- }
index 6e4807b0e38ad8038e449de85650ca039a121c1d..3534bb72e1171801c6d4a0963fe42c3e3510eca4 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/ethernet/airoha/airoha_eth.c
 +++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -2605,13 +2605,19 @@ static int airoha_tc_htb_modify_queue(st
+@@ -2608,13 +2608,19 @@ static int airoha_tc_htb_modify_queue(st
  {
        u32 channel = TC_H_MIN(opt->classid) % AIROHA_NUM_QOS_CHANNELS;
        u32 rate = div_u64(opt->rate, 1000) << 3; /* kbps */
diff --git a/target/linux/airoha/patches-6.18/164-v7.2-net-airoha-Add-NULL-check-for-of_reserved_mem_lookup.patch b/target/linux/airoha/patches-6.18/164-v7.2-net-airoha-Add-NULL-check-for-of_reserved_mem_lookup.patch
deleted file mode 100644 (file)
index 8301981..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From f9f25118faa4dd2b6e3d14a03d123bbdbd59925d Mon Sep 17 00:00:00 2001
-From: ZhaoJinming <zhaojinming@uniontech.com>
-Date: Thu, 4 Jun 2026 15:03:52 +0800
-Subject: [PATCH] net: airoha: Add NULL check for of_reserved_mem_lookup() in
- airoha_qdma_init_hfwd_queues()
-
-of_reserved_mem_lookup() may return NULL if the reserved memory region
-referenced by the "memory-region" phandle is not found in the reserved
-memory table (e.g. due to a misconfigured DTS or a removed
-memory-region node).  The current code dereferences the returned
-pointer without checking for NULL, leading to a kernel NULL pointer
-dereference at the following lines:
-
-    dma_addr = rmem->base;                          // line 1156
-    num_desc = div_u64(rmem->size, buf_size);       // line 1160
-
-Add a NULL check after of_reserved_mem_lookup() and return -ENODEV if
-the lookup fails, which is consistent with the existing error handling
-for of_parse_phandle() failure in the same code block.
-
-Fixes: 3a1ce9e3d01b ("net: airoha: Add the capability to allocate hwfd buffers via reserved-memory")
-Cc: stable@vger.kernel.org
-Signed-off-by: ZhaoJinming <zhaojinming@uniontech.com>
-Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/airoha/airoha_eth.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/net/ethernet/airoha/airoha_eth.c
-+++ b/drivers/net/ethernet/airoha/airoha_eth.c
-@@ -1159,6 +1159,9 @@ static int airoha_qdma_init_hfwd_queues(
-               rmem = of_reserved_mem_lookup(np);
-               of_node_put(np);
-+              if (!rmem)
-+                      return -ENODEV;
-+
-               dma_addr = rmem->base;
-               /* Compute the number of hw descriptors according to the
-                * reserved memory size and the payload buffer size
index 2b978e11605fed3be91d0007f875de0d43f81194..cc710daead407ae7b4c21063b288a1dd8394377b 100644 (file)
@@ -107,7 +107,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  module_phy_driver(as21xxx_drivers);
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1882,7 +1882,8 @@ void phy_detach(struct phy_device *phyde
+@@ -1885,7 +1885,8 @@ void phy_detach(struct phy_device *phyde
        }
  
        /* Assert the reset signal */
index 80d325e44e53361273a7f022cd538a061614418d..0e132297fb75ab8be344dc4c3462b90fe593ce4b 100644 (file)
@@ -91,6 +91,7 @@ CONFIG_ARM64_ERRATUM_2441007=y
 CONFIG_ARM64_ERRATUM_2441009=y
 CONFIG_ARM64_ERRATUM_2457168=y
 CONFIG_ARM64_ERRATUM_2658417=y
+CONFIG_ARM64_ERRATUM_4118414=y
 CONFIG_ARM64_ERRATUM_4193714=y
 CONFIG_ARM64_ERRATUM_819472=y
 CONFIG_ARM64_ERRATUM_824069=y
index aca784e753aa1cce2fa0f7fc5f90978e9377a87d..30787e6a27396cb913613127239677021df1d63b 100644 (file)
@@ -74,7 +74,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
        /* Access rules:
         * state_hw_drive: st_mutex held
         * state_hw_mask: st_mutex held
-@@ -860,6 +877,45 @@ static int sfp_read(struct sfp *sfp, boo
+@@ -861,6 +878,45 @@ static int sfp_read(struct sfp *sfp, boo
        return sfp->read(sfp, a2, addr, buf, len);
  }
  
@@ -120,7 +120,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  static int sfp_write(struct sfp *sfp, bool a2, u8 addr, void *buf, size_t len)
  {
        return sfp->write(sfp, a2, addr, buf, len);
-@@ -3158,9 +3214,30 @@ static int sfp_probe(struct platform_dev
+@@ -3159,9 +3215,30 @@ static int sfp_probe(struct platform_dev
        sfp->get_state = sfp_gpio_get_state;
        sfp->set_state = sfp_gpio_set_state;
  
index 49bac39bcfa685398306518dec0f6da27848eab9..851333aab4e534b822229a45ff5a7ada2db4ecd7 100644 (file)
@@ -221,7 +221,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        eee->eee_enabled = tp->eee_en;
  
        if (speed & _1000bps)
-@@ -9381,6 +9440,11 @@ static int rtl8152_probe_once(struct usb
+@@ -9386,6 +9445,11 @@ static int rtl8152_probe_once(struct usb
                } else {
                        tp->speed = SPEED_1000;
                }
index 459c2dba11ee90bb49dc90d539f425f9f355a326..e1da5c1321579edd085a2fa12392b846685c1545 100644 (file)
@@ -1535,7 +1535,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
        default:
                version = RTL_VER_UNKNOWN;
                dev_info(&udev->dev, "Unknown version 0x%04x\n", ocp_data);
-@@ -9411,6 +9954,7 @@ static int rtl8152_probe_once(struct usb
+@@ -9416,6 +9959,7 @@ static int rtl8152_probe_once(struct usb
        case RTL_VER_12:
        case RTL_VER_13:
        case RTL_VER_15:
@@ -1543,7 +1543,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
                netdev->max_mtu = size_to_mtu(16 * 1024);
                break;
        case RTL_VER_01:
-@@ -9571,6 +10115,7 @@ static const struct usb_device_id rtl815
+@@ -9576,6 +10120,7 @@ static const struct usb_device_id rtl815
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x8153) },
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x8155) },
        { USB_DEVICE(VENDOR_ID_REALTEK, 0x8156) },
index e532458b42a1424ea7e2a00f1ce9d3b7ee47c743..2460aa1b035c75ade0ec0d7f8972f20e92e482c5 100644 (file)
@@ -397,6 +397,7 @@ CONFIG_ARM64_CNP=y
 # CONFIG_ARM64_ERRATUM_2966298 is not set
 # CONFIG_ARM64_ERRATUM_3117295 is not set
 # CONFIG_ARM64_ERRATUM_3194386 is not set
+# CONFIG_ARM64_ERRATUM_4118414 is not set
 # CONFIG_ARM64_ERRATUM_819472 is not set
 # CONFIG_ARM64_ERRATUM_824069 is not set
 # CONFIG_ARM64_ERRATUM_826319 is not set
index eff038fbd0699df52d8638b9811d10a6c0cc7bd9..feeb329ca12065da5af140899f811a5be5260917 100644 (file)
@@ -32,7 +32,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
        {QMI_FIXED_INTF(0x0408, 0xea42, 4)},    /* Yota / Megafon M100-1 */
 --- a/drivers/usb/serial/option.c
 +++ b/drivers/usb/serial/option.c
-@@ -247,6 +247,11 @@ static void option_instat_callback(struc
+@@ -248,6 +248,11 @@ static void option_instat_callback(struc
  #define UBLOX_PRODUCT_R410M                   0x90b2
  /* These Yuga products use Qualcomm's vendor ID */
  #define YUGA_PRODUCT_CLM920_NC5                       0x9625
@@ -44,7 +44,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
  
  #define QUECTEL_VENDOR_ID                     0x2c7c
  /* These Quectel products use Quectel's vendor ID */
-@@ -1156,6 +1161,11 @@ static const struct usb_device_id option
+@@ -1159,6 +1164,11 @@ static const struct usb_device_id option
        { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
        { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
          .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
@@ -56,7 +56,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
        /* Quectel products using Qualcomm vendor ID */
        { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
        { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
-@@ -1197,6 +1207,11 @@ static const struct usb_device_id option
+@@ -1200,6 +1210,11 @@ static const struct usb_device_id option
          .driver_info = ZLP },
        { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
          .driver_info = RSVD(4) },
index 1308c0d9714123d1e43e2ca141b4285e70535b78..69be731568e8cf4e96eccbc96afd46ab2343e203 100644 (file)
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
                                                          u32));
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
-@@ -2406,9 +2423,11 @@ static void __sk_free(struct sock *sk)
+@@ -2411,9 +2428,11 @@ static void __sk_free(struct sock *sk)
        if (likely(sk->sk_net_refcnt))
                sock_inuse_add(sock_net(sk), -1);
  
index e6829065a46836f6220bdf622054837cf99c9869..4afc1e8c5afb4cd5696454e57e2c1fb7da772557 100644 (file)
@@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -4349,6 +4349,8 @@ static __net_initdata struct pernet_oper
+@@ -4358,6 +4358,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index b268a2d8f1bf31ee07867a28b85053a4773fab4e..1efcc0734ee2f29bed4280752a3a595a0d6830a5 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-6.18 = .35
-LINUX_KERNEL_HASH-6.18.35 = f78602932219125e211c5f5bfd84edcfd4ec5ce88fc944f8248413f665bef236
+LINUX_VERSION-6.18 = .36
+LINUX_KERNEL_HASH-6.18.36 = fbab86c9f471c81075b280cca30bd85d790c060063a1245859b6344b07c9c44e
index 8d204b98f6866416dd39d18cc9c1ebe87e73cc49..0f0bd4909224553cfc04d18af78bec5de05f1bf5 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -628,7 +628,7 @@ export RUSTC_BOOTSTRAP := 1
+@@ -629,7 +629,7 @@ export RUSTC_BOOTSTRAP := 1
  # Allows finding `.clippy.toml` in out-of-srctree builds.
  export CLIPPY_CONF_DIR := $(srctree)
  
index f3d96f6bb2232eb8a5b89cfcaf4c201be104c5d8..bf140cc4f08c8ae033b60c1206dbaf92ec44d462 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2620,7 +2620,7 @@ void sk_setup_caps(struct sock *sk, stru
+@@ -2625,7 +2625,7 @@ void sk_setup_caps(struct sock *sk, stru
                icsk->icsk_ack.dst_quick_ack = dst_metric(dst, RTAX_QUICKACK);
        }
        if (sk->sk_route_caps & NETIF_F_GSO)
index 97f7d3f3da795f5faeb60f080485049569082df3..baa9dc7a52d409cb20872d06b2f0f1a8a827dc2c 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1836,6 +1836,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1839,6 +1839,9 @@ void phy_detach(struct phy_device *phyde
                phydev->devlink = NULL;
        }
  
index ebc4fb8b72a182b2ae590921e0d419a18570efa0..66cbf9b6a1f7d1d27ce1b1fc5abd79415f474027 100644 (file)
@@ -51,7 +51,7 @@ Signed-off-by: Yoonji Park <koreapyj@dcmys.kr>
         * CONFIG_CMDLINE is meant to be a default in case nothing else
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
-@@ -2398,6 +2398,14 @@ config CMDLINE_FORCE
+@@ -2436,6 +2436,14 @@ config CMDLINE_FORCE
  
  endchoice
  
index b1cac719cb2699b109f1cbf6f0c32ca1dea5eb60..534d15a6fa60bc237545b432fc471a39f414d485 100644 (file)
@@ -31,8 +31,8 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 
 --- a/drivers/net/phy/sfp.c
 +++ b/drivers/net/phy/sfp.c
-@@ -841,6 +841,7 @@ static int sfp_i2c_configure(struct sfp
-               return -EINVAL;
+@@ -1815,6 +1815,7 @@ static int sfp_hwmon_insert(struct sfp *
+               sfp->hwmon_tries = R_PROBE_RETRY_SLOW;
        }
  
 +      sfp->i2c_block_size = sfp->i2c_max_block_size;
index ceeaae4c75a85043769fa5da0571366598510da2..42362fc0fd78a9cea522b3dbe9bd0342a8cfa6f9 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
  static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
  {
        mdiobus_unregister(sfp->i2c_mii);
-@@ -2172,9 +2195,15 @@ static void sfp_sm_fault(struct sfp *sfp
+@@ -2173,9 +2196,15 @@ static void sfp_sm_fault(struct sfp *sfp
  
  static int sfp_sm_add_mdio_bus(struct sfp *sfp)
  {
index c1213b5da5eb40067efac1508ba1cdabf1dc34a8..098f1ac4f964ee926cd083c99f8497ca11cd8e11 100644 (file)
@@ -38,6 +38,7 @@ CONFIG_ARM64_ERRATUM_2441007=y
 CONFIG_ARM64_ERRATUM_2441009=y
 CONFIG_ARM64_ERRATUM_2658417=y
 CONFIG_ARM64_ERRATUM_3117295=y
+CONFIG_ARM64_ERRATUM_4118414=y
 CONFIG_ARM64_ERRATUM_819472=y
 CONFIG_ARM64_ERRATUM_824069=y
 CONFIG_ARM64_ERRATUM_826319=y