diff --git a/include/kernel-5.15 b/include/kernel-5.15 index 27ba5c1da..3085a029d 100644 --- a/include/kernel-5.15 +++ b/include/kernel-5.15 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.15 = .70 -LINUX_KERNEL_HASH-5.15.70 = 1a7c26f0253407bb222786c8cbf2ee6235acebe8ea641fe0bc2360acce970d76 +LINUX_VERSION-5.15 = .71 +LINUX_KERNEL_HASH-5.15.71 = 5f5408138e016c0e029e015d98ceab86f4e6366c65cd611259dac808ab1d1e53 diff --git a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch index 8063d2027..555e7eaa9 100644 --- a/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch +++ b/target/linux/generic/backport-5.15/703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch @@ -637,7 +637,7 @@ Signed-off-by: David S. Miller static void macb_usx_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode, --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c -@@ -940,7 +940,7 @@ static void enetc_pl_mac_validate(struct +@@ -968,7 +968,7 @@ static void enetc_pl_mac_validate(struct state->interface != PHY_INTERFACE_MODE_2500BASEX && state->interface != PHY_INTERFACE_MODE_USXGMII && !phy_interface_mode_is_rgmii(state->interface)) { @@ -646,7 +646,7 @@ Signed-off-by: David S. Miller return; } -@@ -963,10 +963,8 @@ static void enetc_pl_mac_validate(struct +@@ -991,10 +991,8 @@ static void enetc_pl_mac_validate(struct phylink_set(mask, 2500baseX_Full); } diff --git a/target/linux/generic/hack-5.15/221-module_exports.patch b/target/linux/generic/hack-5.15/221-module_exports.patch index 204027d76..af21a2db8 100644 --- a/target/linux/generic/hack-5.15/221-module_exports.patch +++ b/target/linux/generic/hack-5.15/221-module_exports.patch @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau } \ \ /* __*init sections */ \ -@@ -1018,6 +1028,8 @@ +@@ -1017,6 +1027,8 @@ #define COMMON_DISCARDS \ SANITIZER_DISCARDS \ diff --git a/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch b/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch index 65d8f4752..29050d38e 100644 --- a/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch +++ b/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch @@ -20,7 +20,7 @@ Signed-off-by: Birger Koblitz #define MDIO_PHYXS_VEND_IF_STATUS 0xe812 #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3) -@@ -372,6 +374,49 @@ static int aqr107_read_rate(struct phy_d +@@ -381,6 +383,49 @@ static int aqr107_read_rate(struct phy_d return 0; } @@ -70,7 +70,7 @@ Signed-off-by: Birger Koblitz static int aqr107_read_status(struct phy_device *phydev) { int val, ret; -@@ -502,7 +547,7 @@ static void aqr107_chip_info(struct phy_ +@@ -511,7 +556,7 @@ static void aqr107_chip_info(struct phy_ build_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_FW_BUILD_ID, val); prov_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_PROV_ID, val); @@ -79,7 +79,7 @@ Signed-off-by: Birger Koblitz fw_major, fw_minor, build_id, prov_id); } -@@ -674,6 +719,24 @@ static struct phy_driver aqr_driver[] = +@@ -719,6 +764,24 @@ static struct phy_driver aqr_driver[] = .link_change_notify = aqr107_link_change_notify, }, { @@ -104,7 +104,7 @@ Signed-off-by: Birger Koblitz PHY_ID_MATCH_MODEL(PHY_ID_AQCS109), .name = "Aquantia AQCS109", .probe = aqr107_probe, -@@ -699,6 +762,24 @@ static struct phy_driver aqr_driver[] = +@@ -744,6 +807,24 @@ static struct phy_driver aqr_driver[] = .handle_interrupt = aqr_handle_interrupt, .read_status = aqr_read_status, }, @@ -129,7 +129,7 @@ Signed-off-by: Birger Koblitz }; module_phy_driver(aqr_driver); -@@ -709,8 +790,10 @@ static struct mdio_device_id __maybe_unu +@@ -754,8 +835,10 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, diff --git a/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch b/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch index f1901853e..211696c56 100644 --- a/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch +++ b/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch @@ -27,9 +27,9 @@ Signed-off-by: Alex Marginean #define PHY_ID_AQR813 0x31c31cb2 #define MDIO_PHYXS_VEND_IF_STATUS 0xe812 -@@ -126,6 +128,29 @@ - #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL2 BIT(1) - #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL3 BIT(0) +@@ -135,6 +137,29 @@ + #define AQR107_OP_IN_PROG_SLEEP 1000 + #define AQR107_OP_IN_PROG_TIMEOUT 100000 +/* registers in MDIO_MMD_VEND1 region */ +#define AQUANTIA_VND1_GLOBAL_SC 0x000 @@ -57,7 +57,7 @@ Signed-off-by: Alex Marginean struct aqr107_hw_stat { const char *name; int reg; -@@ -257,6 +282,51 @@ static int aqr_config_aneg(struct phy_de +@@ -266,6 +291,51 @@ static int aqr_config_aneg(struct phy_de return genphy_c45_check_and_restart_aneg(phydev, changed); } @@ -109,7 +109,7 @@ Signed-off-by: Alex Marginean static int aqr_config_intr(struct phy_device *phydev) { bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; -@@ -780,6 +850,30 @@ static struct phy_driver aqr_driver[] = +@@ -825,6 +895,30 @@ static struct phy_driver aqr_driver[] = .get_stats = aqr107_get_stats, .link_change_notify = aqr107_link_change_notify, }, @@ -140,7 +140,7 @@ Signed-off-by: Alex Marginean }; module_phy_driver(aqr_driver); -@@ -790,9 +884,11 @@ static struct mdio_device_id __maybe_unu +@@ -835,9 +929,11 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, diff --git a/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch b/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch index d99b4951b..7d16c8aa2 100644 --- a/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch +++ b/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch @@ -14,7 +14,7 @@ Signed-off-by: Alex Marginean --- a/drivers/net/phy/aquantia_main.c +++ b/drivers/net/phy/aquantia_main.c -@@ -315,10 +315,16 @@ static int aqr_config_aneg_set_prot(stru +@@ -324,10 +324,16 @@ static int aqr_config_aneg_set_prot(stru phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, aquantia_syscfg[if_type].start_rate); diff --git a/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch b/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch index 634288c78..d03c3430f 100644 --- a/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch +++ b/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch @@ -18,7 +18,7 @@ Add a new entry for AQR113 PHY_ID #define PHY_ID_AQR113C 0x31c31c12 #define PHY_ID_AQCS109 0x03a1b5c2 #define PHY_ID_AQR405 0x03a1b4b0 -@@ -869,6 +870,14 @@ static struct phy_driver aqr_driver[] = +@@ -914,6 +915,14 @@ static struct phy_driver aqr_driver[] = .get_stats = aqr107_get_stats, }, { @@ -33,7 +33,7 @@ Add a new entry for AQR113 PHY_ID PHY_ID_MATCH_MODEL(PHY_ID_AQR412), .name = "Aquantia AQR412", .probe = aqr107_probe, -@@ -891,6 +900,7 @@ static struct mdio_device_id __maybe_unu +@@ -936,6 +945,7 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, diff --git a/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch b/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch index f7ccc454e..9821c0c86 100644 --- a/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch +++ b/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch @@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle #define PHY_ID_AQR113 0x31c31c40 #define PHY_ID_AQR113C 0x31c31c12 #define PHY_ID_AQCS109 0x03a1b5c2 -@@ -870,6 +872,30 @@ static struct phy_driver aqr_driver[] = +@@ -915,6 +917,30 @@ static struct phy_driver aqr_driver[] = .get_stats = aqr107_get_stats, }, { @@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle PHY_ID_MATCH_MODEL(PHY_ID_AQR113), .name = "Aquantia AQR113", .config_aneg = aqr_config_aneg, -@@ -900,6 +926,8 @@ static struct mdio_device_id __maybe_unu +@@ -945,6 +971,8 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, diff --git a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch index 096f143a2..34a741b1c 100644 --- a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch +++ b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch @@ -29,8 +29,8 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support #define QUECTEL_VENDOR_ID 0x2c7c /* These Quectel products use Quectel's vendor ID */ -@@ -1140,6 +1142,11 @@ static const struct usb_device_id option - { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, +@@ -1143,6 +1145,11 @@ static const struct usb_device_id option + .driver_info = ZLP }, { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), .driver_info = RSVD(4) }, + /* Meiglink products using Qualcomm vendor ID */ diff --git a/target/linux/generic/hack-5.15/953-net-patch-linux-kernel-to-support-shortcut-fe.patch b/target/linux/generic/hack-5.15/953-net-patch-linux-kernel-to-support-shortcut-fe.patch index 9ac65dc27..6e8792433 100644 --- a/target/linux/generic/hack-5.15/953-net-patch-linux-kernel-to-support-shortcut-fe.patch +++ b/target/linux/generic/hack-5.15/953-net-patch-linux-kernel-to-support-shortcut-fe.patch @@ -12,7 +12,7 @@ struct list_head *br_ip_list); --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -912,6 +912,10 @@ struct sk_buff { +@@ -913,6 +913,10 @@ struct sk_buff { #endif __u8 slow_gro:1; @@ -49,7 +49,7 @@ const struct nf_ct_event_notifier *nb); --- a/net/Kconfig +++ b/net/Kconfig -@@ -456,6 +456,9 @@ config FAILOVER +@@ -469,6 +469,9 @@ config FAILOVER migration of VMs with direct attached VFs by failing over to the paravirtual datapath when the VF is unplugged. diff --git a/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch b/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch index 4e8042380..4a28b1d63 100644 --- a/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch +++ b/target/linux/generic/pending-5.15/700-net-ethernet-mtk_eth_soc-avoid-creating-duplicate-of.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c -@@ -233,6 +233,9 @@ mtk_flow_offload_replace(struct mtk_eth +@@ -247,6 +247,9 @@ mtk_flow_offload_replace(struct mtk_eth if (rhashtable_lookup(ð->flow_table, &f->cookie, mtk_flow_ht_params)) return -EEXIST; diff --git a/target/linux/generic/pending-5.15/730-mtk_sgmii-enable-PCS-polling-to-allow-SFP-work.patch b/target/linux/generic/pending-5.15/730-mtk_sgmii-enable-PCS-polling-to-allow-SFP-work.patch index 6c7fd6a6b..d185aed7b 100644 --- a/target/linux/generic/pending-5.15/730-mtk_sgmii-enable-PCS-polling-to-allow-SFP-work.patch +++ b/target/linux/generic/pending-5.15/730-mtk_sgmii-enable-PCS-polling-to-allow-SFP-work.patch @@ -13,7 +13,7 @@ Signed-off-by: Alexander Couzens --- a/drivers/net/ethernet/mediatek/mtk_sgmii.c +++ b/drivers/net/ethernet/mediatek/mtk_sgmii.c -@@ -180,6 +180,7 @@ int mtk_sgmii_init(struct mtk_sgmii *ss, +@@ -182,6 +182,7 @@ int mtk_sgmii_init(struct mtk_sgmii *ss, return PTR_ERR(ss->pcs[i].regmap); ss->pcs[i].pcs.ops = &mtk_pcs_ops; diff --git a/target/linux/ipq60xx/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch b/target/linux/ipq60xx/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch index a1a0bc372..b47bf6e4d 100644 --- a/target/linux/ipq60xx/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch +++ b/target/linux/ipq60xx/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch @@ -14,7 +14,7 @@ variable names created with 603. --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -687,6 +687,7 @@ typedef unsigned char *sk_buff_data_t; +@@ -688,6 +688,7 @@ typedef unsigned char *sk_buff_data_t; * @offload_fwd_mark: Packet was L2-forwarded in hardware * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware * @tc_skip_classify: do not classify packet. set by IFB device @@ -22,7 +22,7 @@ variable names created with 603. * @tc_at_ingress: used within tc_classify to distinguish in/egress * @redirected: packet was redirected by packet classifier * @from_ingress: packet was redirected from the ingress path -@@ -902,6 +903,7 @@ struct sk_buff { +@@ -903,6 +904,7 @@ struct sk_buff { #ifdef CONFIG_NET_CLS_ACT __u8 tc_skip_classify:1; __u8 tc_at_ingress:1; diff --git a/target/linux/ipq60xx/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch b/target/linux/ipq60xx/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch index a1e13b52b..a66074380 100644 --- a/target/linux/ipq60xx/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch +++ b/target/linux/ipq60xx/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch @@ -10,7 +10,7 @@ static struct flow_dissector flow_keys_bonding __read_mostly; /*-------------------------- Forward declarations ---------------------------*/ -@@ -4060,6 +4063,23 @@ static int bond_get_lowest_level_rcu(str +@@ -4081,6 +4084,23 @@ static int bond_get_lowest_level_rcu(str } #endif @@ -34,7 +34,7 @@ static void bond_get_stats(struct net_device *bond_dev, struct rtnl_link_stats64 *stats) { -@@ -5392,6 +5412,10 @@ static void bond_destructor(struct net_d +@@ -5413,6 +5433,10 @@ static void bond_destructor(struct net_d if (bond->rr_tx_counter) free_percpu(bond->rr_tx_counter); @@ -45,7 +45,7 @@ } void bond_setup(struct net_device *bond_dev) -@@ -5969,7 +5993,14 @@ int bond_create(struct net *net, const c +@@ -5981,7 +6005,14 @@ int bond_create(struct net *net, const c bond_work_init_all(bond); diff --git a/target/linux/ipq807x/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch b/target/linux/ipq807x/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch index a1a0bc372..b47bf6e4d 100644 --- a/target/linux/ipq807x/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch +++ b/target/linux/ipq807x/patches-5.15/0603-net-core-Flag-to-identify-ingress-shaping-done-for-e.patch @@ -14,7 +14,7 @@ variable names created with 603. --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -687,6 +687,7 @@ typedef unsigned char *sk_buff_data_t; +@@ -688,6 +688,7 @@ typedef unsigned char *sk_buff_data_t; * @offload_fwd_mark: Packet was L2-forwarded in hardware * @offload_l3_fwd_mark: Packet was L3-forwarded in hardware * @tc_skip_classify: do not classify packet. set by IFB device @@ -22,7 +22,7 @@ variable names created with 603. * @tc_at_ingress: used within tc_classify to distinguish in/egress * @redirected: packet was redirected by packet classifier * @from_ingress: packet was redirected from the ingress path -@@ -902,6 +903,7 @@ struct sk_buff { +@@ -903,6 +904,7 @@ struct sk_buff { #ifdef CONFIG_NET_CLS_ACT __u8 tc_skip_classify:1; __u8 tc_at_ingress:1; diff --git a/target/linux/ipq807x/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch b/target/linux/ipq807x/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch index a1e13b52b..a66074380 100644 --- a/target/linux/ipq807x/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch +++ b/target/linux/ipq807x/patches-5.15/0606-5.15-qca-nss-ecm-bonding-add-bond_get_id.patch @@ -10,7 +10,7 @@ static struct flow_dissector flow_keys_bonding __read_mostly; /*-------------------------- Forward declarations ---------------------------*/ -@@ -4060,6 +4063,23 @@ static int bond_get_lowest_level_rcu(str +@@ -4081,6 +4084,23 @@ static int bond_get_lowest_level_rcu(str } #endif @@ -34,7 +34,7 @@ static void bond_get_stats(struct net_device *bond_dev, struct rtnl_link_stats64 *stats) { -@@ -5392,6 +5412,10 @@ static void bond_destructor(struct net_d +@@ -5413,6 +5433,10 @@ static void bond_destructor(struct net_d if (bond->rr_tx_counter) free_percpu(bond->rr_tx_counter); @@ -45,7 +45,7 @@ } void bond_setup(struct net_device *bond_dev) -@@ -5969,7 +5993,14 @@ int bond_create(struct net *net, const c +@@ -5981,7 +6005,14 @@ int bond_create(struct net *net, const c bond_work_init_all(bond); diff --git a/target/linux/rockchip/patches-5.15/040-v5.18-usb-dwc3-core-do-not-use-3.0-clock-when-operating-in-2.0.patch b/target/linux/rockchip/patches-5.15/040-v5.18-usb-dwc3-core-do-not-use-3.0-clock-when-operating-in-2.0.patch index 5657100ab..2d6544a76 100644 --- a/target/linux/rockchip/patches-5.15/040-v5.18-usb-dwc3-core-do-not-use-3.0-clock-when-operating-in-2.0.patch +++ b/target/linux/rockchip/patches-5.15/040-v5.18-usb-dwc3-core-do-not-use-3.0-clock-when-operating-in-2.0.patch @@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -1068,6 +1068,11 @@ static int dwc3_core_init(struct dwc3 *d +@@ -1066,6 +1066,11 @@ static int dwc3_core_init(struct dwc3 *d if (dwc->parkmode_disable_ss_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;