kernel: bump 6.12 to 6.12.29
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.29 Removed upstreamed: generic/pending-6.12/730-net-ethernet-mtk_eth_soc-reset-all-TX-queues-on-DMA-.patch[1] Added settings: x86: CONFIG_MITIGATION_ITS=y[2] 1. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=aac9d5fa537b0c19f6d3af3c8a124028510bb647 2. https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=68d59e9ba38424389168eddf8791265818f67292 All other patches automatically rebased. Build system: x86/64 Build-tested: x86/64 Run-tested: x86/64 Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com> Link: https://github.com/openwrt/openwrt/pull/18837 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
328eb84ee4
commit
0912d3f595
13 changed files with 31 additions and 79 deletions
|
@ -39,7 +39,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
|||
mcr |= MAC_MCR_TX_EN | MAC_MCR_RX_EN | MAC_MCR_FORCE_LINK;
|
||||
mtk_w32(mac->hw, mcr, MTK_MAC_MCR(mac->id));
|
||||
}
|
||||
@@ -4501,6 +4511,61 @@ static int mtk_set_pauseparam(struct net
|
||||
@@ -4506,6 +4516,61 @@ static int mtk_set_pauseparam(struct net
|
||||
return phylink_ethtool_set_pauseparam(mac->phylink, pause);
|
||||
}
|
||||
|
||||
|
@ -101,7 +101,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
|||
static u16 mtk_select_queue(struct net_device *dev, struct sk_buff *skb,
|
||||
struct net_device *sb_dev)
|
||||
{
|
||||
@@ -4533,6 +4598,8 @@ static const struct ethtool_ops mtk_etht
|
||||
@@ -4538,6 +4603,8 @@ static const struct ethtool_ops mtk_etht
|
||||
.set_pauseparam = mtk_set_pauseparam,
|
||||
.get_rxnfc = mtk_get_rxnfc,
|
||||
.set_rxnfc = mtk_set_rxnfc,
|
||||
|
@ -110,7 +110,7 @@ Signed-off-by: Qingfang Deng <dqfext@gmail.com>
|
|||
};
|
||||
|
||||
static const struct net_device_ops mtk_netdev_ops = {
|
||||
@@ -4593,6 +4660,8 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4598,6 +4665,8 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
}
|
||||
mac = netdev_priv(eth->netdev[id]);
|
||||
eth->mac[id] = mac;
|
||||
|
|
|
@ -10,7 +10,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
|
|||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -2059,7 +2059,7 @@ config PADATA
|
||||
@@ -2062,7 +2062,7 @@ config PADATA
|
||||
bool
|
||||
|
||||
config ASN1
|
||||
|
|
|
@ -37,7 +37,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
|
|||
.glo_cfg = 0x4604,
|
||||
.rst_idx = 0x4608,
|
||||
.delay_irq = 0x460c,
|
||||
@@ -3904,6 +3907,56 @@ static void mtk_set_mcr_max_rx(struct mt
|
||||
@@ -3901,6 +3904,56 @@ static void mtk_set_mcr_max_rx(struct mt
|
||||
mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
|
|||
static void mtk_hw_reset(struct mtk_eth *eth)
|
||||
{
|
||||
u32 val;
|
||||
@@ -4383,6 +4436,8 @@ static void mtk_pending_work(struct work
|
||||
@@ -4380,6 +4433,8 @@ static void mtk_pending_work(struct work
|
||||
rtnl_lock();
|
||||
set_bit(MTK_RESETTING, ð->state);
|
||||
|
||||
|
|
|
@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
if (!pe)
|
||||
--- a/mm/vmalloc.c
|
||||
+++ b/mm/vmalloc.c
|
||||
@@ -5034,6 +5034,8 @@ static int __init proc_vmalloc_init(void
|
||||
@@ -5051,6 +5051,8 @@ static int __init proc_vmalloc_init(void
|
||||
{
|
||||
void *priv_data = NULL;
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
LINUX_VERSION-6.12 = .28
|
||||
LINUX_KERNEL_HASH-6.12.28 = e8a099182562aecff781de72ce769461e706d97af42d740dff20eb450dd5771e
|
||||
LINUX_VERSION-6.12 = .29
|
||||
LINUX_KERNEL_HASH-6.12.29 = e8b2ec7e2338ccb9c86de7154f6edcaadfce80907493c143e85a82776bb5064d
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1530,6 +1530,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
||||
@@ -1533,6 +1533,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
||||
the unaligned access emulation.
|
||||
see arch/parisc/kernel/unaligned.c for reference
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -5135,6 +5135,8 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -5140,6 +5140,8 @@ static int mtk_probe(struct platform_dev
|
||||
dev_err(eth->dev, "failed to allocated dummy device\n");
|
||||
goto err_unreg_netdev;
|
||||
}
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
From 7d41a5a8e9c91cc6bb011dd953570738583dd091 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Wed, 18 Sep 2024 02:01:01 +0100
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: reset all TX queues on DMA free
|
||||
|
||||
The purpose of resetting the TX queue is to reset the
|
||||
byte and packet count as well as to clear the software
|
||||
flow control XOFF bit.
|
||||
|
||||
MediaTek developers pointed out that netdev_reset_queue would only
|
||||
resets queue 0 of the network device.
|
||||
Queues that are not reset may cause unexpected issues.
|
||||
|
||||
Packets may stop being sent after reset and "transmit timeout" log may
|
||||
be displayed.
|
||||
|
||||
Import fix from MediaTek's SDK to resolve this issue.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 18 ++++++++++++++----
|
||||
1 file changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -3150,11 +3150,19 @@ static int mtk_dma_init(struct mtk_eth *
|
||||
static void mtk_dma_free(struct mtk_eth *eth)
|
||||
{
|
||||
const struct mtk_soc_data *soc = eth->soc;
|
||||
- int i;
|
||||
+ int i, j, txqs = 1;
|
||||
+
|
||||
+ if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
|
||||
+ txqs = MTK_QDMA_NUM_QUEUES;
|
||||
+
|
||||
+ for (i = 0; i < MTK_MAX_DEVS; i++) {
|
||||
+ if (!eth->netdev[i])
|
||||
+ continue;
|
||||
+
|
||||
+ for (j = 0; j < txqs; j++)
|
||||
+ netdev_tx_reset_queue(netdev_get_tx_queue(eth->netdev[i], j));
|
||||
+ }
|
||||
|
||||
- for (i = 0; i < MTK_MAX_DEVS; i++)
|
||||
- if (eth->netdev[i])
|
||||
- netdev_reset_queue(eth->netdev[i]);
|
||||
if (!MTK_HAS_CAPS(soc->caps, MTK_SRAM) && eth->scratch_ring) {
|
||||
dma_free_coherent(eth->dma_dev,
|
||||
MTK_QDMA_RING_SIZE * soc->tx.desc_size,
|
|
@ -487,7 +487,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
|
||||
if (err) {
|
||||
netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
|
||||
@@ -3582,6 +3730,9 @@ static int mtk_stop(struct net_device *d
|
||||
@@ -3579,6 +3727,9 @@ static int mtk_stop(struct net_device *d
|
||||
for (i = 0; i < ARRAY_SIZE(eth->ppe); i++)
|
||||
mtk_ppe_stop(eth->ppe[i]);
|
||||
|
||||
|
@ -497,7 +497,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -4672,6 +4823,7 @@ static const struct net_device_ops mtk_n
|
||||
@@ -4669,6 +4820,7 @@ static const struct net_device_ops mtk_n
|
||||
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
||||
{
|
||||
const __be32 *_id = of_get_property(np, "reg", NULL);
|
||||
|
@ -505,7 +505,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
phy_interface_t phy_mode;
|
||||
struct phylink *phylink;
|
||||
struct mtk_mac *mac;
|
||||
@@ -4710,16 +4862,41 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4707,16 +4859,41 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
mac->id = id;
|
||||
mac->hw = eth;
|
||||
mac->of_node = np;
|
||||
|
@ -555,7 +555,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
}
|
||||
|
||||
memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
|
||||
@@ -4802,8 +4979,21 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -4799,8 +4976,21 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
phy_interface_zero(mac->phylink_config.supported_interfaces);
|
||||
__set_bit(PHY_INTERFACE_MODE_INTERNAL,
|
||||
mac->phylink_config.supported_interfaces);
|
||||
|
@ -577,7 +577,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
phylink = phylink_create(&mac->phylink_config,
|
||||
of_fwnode_handle(mac->of_node),
|
||||
phy_mode, &mtk_phylink_ops);
|
||||
@@ -4854,6 +5044,26 @@ free_netdev:
|
||||
@@ -4851,6 +5041,26 @@ free_netdev:
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -604,7 +604,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev)
|
||||
{
|
||||
struct net_device *dev, *tmp;
|
||||
@@ -5000,7 +5210,8 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -4997,7 +5207,8 @@ static int mtk_probe(struct platform_dev
|
||||
regmap_write(cci, 0, 3);
|
||||
}
|
||||
|
||||
|
@ -614,7 +614,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
err = mtk_sgmii_init(eth);
|
||||
|
||||
if (err)
|
||||
@@ -5111,6 +5322,24 @@ static int mtk_probe(struct platform_dev
|
||||
@@ -5108,6 +5319,24 @@ static int mtk_probe(struct platform_dev
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -639,7 +639,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
|
||||
err = devm_request_irq(eth->dev, eth->irq[0],
|
||||
mtk_handle_irq, 0,
|
||||
@@ -5221,6 +5450,11 @@ static void mtk_remove(struct platform_d
|
||||
@@ -5218,6 +5447,11 @@ static void mtk_remove(struct platform_d
|
||||
mtk_stop(eth->netdev[i]);
|
||||
mac = netdev_priv(eth->netdev[i]);
|
||||
phylink_disconnect_phy(mac->phylink);
|
||||
|
|
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -5485,7 +5485,7 @@ static const struct mtk_soc_data mt2701_
|
||||
@@ -5482,7 +5482,7 @@ static const struct mtk_soc_data mt2701_
|
||||
.desc_size = sizeof(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
|
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5513,7 +5513,7 @@ static const struct mtk_soc_data mt7621_
|
||||
@@ -5510,7 +5510,7 @@ static const struct mtk_soc_data mt7621_
|
||||
.desc_size = sizeof(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5543,7 +5543,7 @@ static const struct mtk_soc_data mt7622_
|
||||
@@ -5540,7 +5540,7 @@ static const struct mtk_soc_data mt7622_
|
||||
.desc_size = sizeof(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
|
@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5572,7 +5572,7 @@ static const struct mtk_soc_data mt7623_
|
||||
@@ -5569,7 +5569,7 @@ static const struct mtk_soc_data mt7623_
|
||||
.desc_size = sizeof(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
|
@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5598,7 +5598,7 @@ static const struct mtk_soc_data mt7629_
|
||||
@@ -5595,7 +5595,7 @@ static const struct mtk_soc_data mt7629_
|
||||
.desc_size = sizeof(struct mtk_rx_dma),
|
||||
.irq_done_mask = MTK_RX_DONE_INT,
|
||||
.dma_l4_valid = RX_DMA_L4_VALID,
|
||||
|
@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
},
|
||||
@@ -5630,7 +5630,7 @@ static const struct mtk_soc_data mt7981_
|
||||
@@ -5627,7 +5627,7 @@ static const struct mtk_soc_data mt7981_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
|
@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
},
|
||||
};
|
||||
|
||||
@@ -5660,7 +5660,7 @@ static const struct mtk_soc_data mt7986_
|
||||
@@ -5657,7 +5657,7 @@ static const struct mtk_soc_data mt7986_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_V2,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
|
@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
},
|
||||
};
|
||||
|
||||
@@ -5713,7 +5713,7 @@ static const struct mtk_soc_data rt5350_
|
||||
@@ -5710,7 +5710,7 @@ static const struct mtk_soc_data rt5350_
|
||||
.dma_l4_valid = RX_DMA_L4_VALID_PDMA,
|
||||
.dma_max_len = MTK_TX_DMA_BUF_LEN,
|
||||
.dma_len_offset = 16,
|
||||
|
|
|
@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
help
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -4591,6 +4591,7 @@ static int mtk_get_sset_count(struct net
|
||||
@@ -4588,6 +4588,7 @@ static int mtk_get_sset_count(struct net
|
||||
|
||||
static void mtk_ethtool_pp_stats(struct mtk_eth *eth, u64 *data)
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
struct page_pool_stats stats = {};
|
||||
int i;
|
||||
|
||||
@@ -4603,6 +4604,7 @@ static void mtk_ethtool_pp_stats(struct
|
||||
@@ -4600,6 +4601,7 @@ static void mtk_ethtool_pp_stats(struct
|
||||
page_pool_get_stats(ring->page_pool, &stats);
|
||||
}
|
||||
page_pool_ethtool_stats_get(data, &stats);
|
||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
|||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1884,6 +1884,15 @@ config ARCH_HAS_MEMBARRIER_CALLBACKS
|
||||
@@ -1887,6 +1887,15 @@ config ARCH_HAS_MEMBARRIER_CALLBACKS
|
||||
config ARCH_HAS_MEMBARRIER_SYNC_CORE
|
||||
bool
|
||||
|
||||
|
|
|
@ -256,6 +256,7 @@ CONFIG_MICROCODE_INITRD32=y
|
|||
CONFIG_MICROCODE_LATE_FORCE_MINREV=y
|
||||
CONFIG_MICROCODE_LATE_LOADING=y
|
||||
CONFIG_MIGRATION=y
|
||||
CONFIG_MITIGATION_ITS=y
|
||||
CONFIG_MITIGATION_GDS=y
|
||||
CONFIG_MITIGATION_L1TF=y
|
||||
CONFIG_MITIGATION_MDS=y
|
||||
|
|
Loading…
Reference in a new issue