kernel: bump 6.12 to 6.12.70

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.70

Removed upstreamed:
 backport-6.12/605-01-v6.17-net-phy-add-phy_interface_weight.patch[1]

All patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.70&id=4dc7b69bca8ef6b932a7c6bea63450796b1146ce

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000
Run-tested: flogic/glinet_gl-mt6000

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21985
(cherry picked from commit 2c4a719d26)
Link: https://github.com/openwrt/openwrt/pull/22017
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
John Audia 2026-02-12 15:08:34 -05:00 committed by Hauke Mehrtens
parent 228a89a013
commit 47f0c12080
20 changed files with 34 additions and 61 deletions

View file

@ -556,8 +556,8 @@ SVN-Revision: 35130
static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
--- a/net/sched/cls_u32.c
+++ b/net/sched/cls_u32.c
@@ -167,7 +167,7 @@ next_knode:
data = skb_header_pointer(skb, toff, 4, &hdata);
@@ -165,7 +165,7 @@ next_knode:
&hdata);
if (!data)
goto out;
- if ((*data ^ key->val) & key->mask) {
@ -565,8 +565,8 @@ SVN-Revision: 35130
n = rcu_dereference_bh(n->next);
goto next_knode;
}
@@ -218,8 +218,8 @@ check_terminal:
&hdata);
@@ -217,8 +217,8 @@ check_terminal:
4, &hdata);
if (!data)
goto out;
- sel = ht->divisor & u32_hash_fold(*data, &n->sel,

View file

@ -86,7 +86,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/arch/arm/include/asm/string.h
+++ b/arch/arm/include/asm/string.h
@@ -65,4 +65,9 @@ static inline void *memset64(uint64_t *p
@@ -68,4 +68,9 @@ static inline void *memset64(uint64_t *p
#endif

View file

@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
@@ -1471,6 +1474,9 @@
@@ -1475,6 +1478,9 @@
#define USB_VENDOR_ID_XIAOMI 0x2717
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
@@ -215,6 +216,7 @@ static const struct hid_device_id hid_qu
@@ -216,6 +217,7 @@ static const struct hid_device_id hid_qu
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },

View file

@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
*
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -816,6 +816,24 @@ struct phy_tdr_config {
@@ -826,6 +826,24 @@ struct phy_tdr_config {
#define PHY_PAIR_ALL -1
/**
@ -92,7 +92,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
* struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
* Avoidance) Reconciliation Sublayer.
*
@@ -954,6 +972,14 @@ struct phy_driver {
@@ -964,6 +982,14 @@ struct phy_driver {
int (*get_features)(struct phy_device *phydev);
/**
@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
* @get_rate_matching: Get the supported type of rate matching for a
* particular phy interface. This is used by phy consumers to determine
* whether to advertise lower-speed modes for that interface. It is
@@ -1832,6 +1858,8 @@ int phy_config_aneg(struct phy_device *p
@@ -1842,6 +1868,8 @@ int phy_config_aneg(struct phy_device *p
int _phy_start_aneg(struct phy_device *phydev);
int phy_start_aneg(struct phy_device *phydev);
int phy_aneg_done(struct phy_device *phydev);

View file

@ -57,7 +57,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
*
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -980,6 +980,11 @@ struct phy_driver {
@@ -990,6 +990,11 @@ struct phy_driver {
phy_interface_t interface);
/**
@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
* @get_rate_matching: Get the supported type of rate matching for a
* particular phy interface. This is used by phy consumers to determine
* whether to advertise lower-speed modes for that interface. It is
@@ -1860,6 +1865,7 @@ int phy_start_aneg(struct phy_device *ph
@@ -1870,6 +1875,7 @@ int phy_start_aneg(struct phy_device *ph
int phy_aneg_done(struct phy_device *phydev);
unsigned int phy_inband_caps(struct phy_device *phydev,
phy_interface_t interface);

View file

@ -1,27 +0,0 @@
From 4beb44a2d62dddfe450f310aa1a950901731cb3a Mon Sep 17 00:00:00 2001
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
Date: Sun, 31 Aug 2025 18:34:33 +0100
Subject: net: phy: add phy_interface_weight()
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/E1uslwn-00000001SOx-0a7H@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
include/linux/phy.h | 5 +++++
1 file changed, 5 insertions(+)
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -187,6 +187,11 @@ static inline bool phy_interface_empty(c
return bitmap_empty(intf, PHY_INTERFACE_MODE_MAX);
}
+static inline unsigned int phy_interface_weight(const unsigned long *intf)
+{
+ return bitmap_weight(intf, PHY_INTERFACE_MODE_MAX);
+}
+
static inline void phy_interface_and(unsigned long *dst, const unsigned long *a,
const unsigned long *b)
{

View file

@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
if (!phydev->drv->led_polarity_set)
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -897,8 +897,9 @@ struct phy_plca_status {
@@ -902,8 +902,9 @@ struct phy_plca_status {
/* Modes for PHY LED configuration */
enum phy_led_modes {

View file

@ -281,7 +281,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1040,7 +1040,8 @@ struct phy_driver {
@@ -1045,7 +1045,8 @@ struct phy_driver {
* driver for the given phydev. If NULL, matching is based on
* phy_id and phy_id_mask.
*/

View file

@ -97,7 +97,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
static ssize_t
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1945,6 +1945,9 @@ char *phy_attached_info_irq(struct phy_d
@@ -1950,6 +1950,9 @@ char *phy_attached_info_irq(struct phy_d
__malloc;
void phy_attached_info(struct phy_device *phydev);

View file

@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1261,9 +1261,13 @@ struct phy_driver {
@@ -1266,9 +1266,13 @@ struct phy_driver {
#define PHY_ANY_ID "MATCH ANY PHY"
#define PHY_ANY_UID 0xffffffff
@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
/**
* phy_id_compare - compare @id1 with @id2 taking account of @mask
@@ -1280,6 +1284,19 @@ static inline bool phy_id_compare(u32 id
@@ -1285,6 +1289,19 @@ static inline bool phy_id_compare(u32 id
}
/**

View file

@ -1,2 +1,2 @@
LINUX_VERSION-6.12 = .69
LINUX_KERNEL_HASH-6.12.69 = 4b493657f218703239c4f22415f027b3644949bf2761abd18b849f0aad5f7665
LINUX_VERSION-6.12 = .70
LINUX_KERNEL_HASH-6.12.70 = 9b4ccec7d8ceff4824f149e476ec06e83c86546ae8af82582871647809a62ef0

View file

@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
sysfs_remove_link(&dev->dev.kobj, "phydev");
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1032,6 +1032,12 @@ struct phy_driver {
@@ -1037,6 +1037,12 @@ struct phy_driver {
/** @handle_interrupt: Override default interrupt handling */
irqreturn_t (*handle_interrupt)(struct phy_device *phydev);

View file

@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
+#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -4806,6 +4806,9 @@ enum skb_ext_id {
@@ -4818,6 +4818,9 @@ enum skb_ext_id {
#if IS_ENABLED(CONFIG_MCTP_FLOWS)
SKB_EXT_MCTP,
#endif

View file

@ -128,7 +128,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie)
{
struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0;
@@ -1336,6 +1413,16 @@ static const struct qcom_pcie_ops ops_2_
@@ -1337,6 +1414,16 @@ static const struct qcom_pcie_ops ops_2_
.ltssm_enable = qcom_pcie_2_3_2_ltssm_enable,
};
@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
/* Qcom IP rev.: 2.3.3 Synopsys IP rev.: 4.30a */
static const struct qcom_pcie_ops ops_2_3_3 = {
.get_resources = qcom_pcie_get_resources_2_3_3,
@@ -1403,6 +1490,10 @@ static const struct qcom_pcie_cfg cfg_2_
@@ -1405,6 +1492,10 @@ static const struct qcom_pcie_cfg cfg_2_
.ops = &ops_2_4_0,
};
@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
static const struct qcom_pcie_cfg cfg_2_7_0 = {
.ops = &ops_2_7_0,
};
@@ -1827,6 +1918,7 @@ static const struct of_device_id qcom_pc
@@ -1829,6 +1920,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },

View file

@ -62,7 +62,7 @@ Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
PHY_INTERFACE_MODE_MAX,
} phy_interface_t;
@@ -240,6 +241,8 @@ static inline const char *phy_modes(phy_
@@ -250,6 +251,8 @@ static inline const char *phy_modes(phy_
return "gmii";
case PHY_INTERFACE_MODE_SGMII:
return "sgmii";

View file

@ -21,7 +21,7 @@ Link: https://patch.msgid.link/20250326-ipq5018-pcie-v7-4-e1828fef06c9@outlook.c
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1827,6 +1827,7 @@ static const struct of_device_id qcom_pc
@@ -1829,6 +1829,7 @@ static const struct of_device_id qcom_pc
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },

View file

@ -14,7 +14,7 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -371,6 +371,7 @@ struct phy_package_shared {
@@ -376,6 +376,7 @@ struct phy_package_shared {
/* used as bit number in atomic bitops */
#define PHY_SHARED_F_INIT_DONE 0
#define PHY_SHARED_F_PROBE_DONE 1
@ -22,7 +22,7 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
/**
* struct mii_bus - Represents an MDIO bus
@@ -2267,6 +2268,11 @@ static inline bool phy_package_probe_onc
@@ -2272,6 +2273,11 @@ static inline bool phy_package_probe_onc
return __phy_package_set_once(phydev, PHY_SHARED_F_PROBE_DONE);
}

View file

@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (phydev->mii_ts && phydev->mii_ts->link_state)
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -680,6 +680,7 @@ struct phy_device {
@@ -690,6 +690,7 @@ struct phy_device {
unsigned downshifted_rate:1;
unsigned is_on_sfp_module:1;
unsigned mac_managed_pm:1;

View file

@ -35,7 +35,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
&phy->mdio.reset_assert_delay);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -306,7 +306,7 @@ static inline const char *phy_modes(phy_
@@ -316,7 +316,7 @@ static inline const char *phy_modes(phy_
#define PHY_INIT_TIMEOUT 100000
#define PHY_FORCE_TIMEOUT 10
@ -44,7 +44,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
/* Used when trying to connect to a specific phy (mii bus id:phy device id) */
#define PHY_ID_FMT "%s:%02x"
@@ -426,10 +426,10 @@ struct mii_bus {
@@ -436,10 +436,10 @@ struct mii_bus {
struct mdio_device *mdio_map[PHY_MAX_ADDR];
/** @phy_mask: PHY addresses to be ignored when probing */

View file

@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -717,10 +717,64 @@ static int sfp_i2c_write(struct sfp *sfp
@@ -718,10 +718,64 @@ static int sfp_i2c_write(struct sfp *sfp
return ret == ARRAY_SIZE(msgs) ? len : 0;
}
@ -77,7 +77,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
sfp->i2c = i2c;
sfp->read = sfp_i2c_read;
@@ -752,6 +806,29 @@ static int sfp_i2c_mdiobus_create(struct
@@ -753,6 +807,29 @@ static int sfp_i2c_mdiobus_create(struct
return 0;
}
@ -107,7 +107,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
{
mdiobus_unregister(sfp->i2c_mii);
@@ -1926,9 +2003,15 @@ static void sfp_sm_fault(struct sfp *sfp
@@ -1927,9 +2004,15 @@ static void sfp_sm_fault(struct sfp *sfp
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
{