kernel: bump 6.6 to 6.6.33 and adjust subarches
This commit accomplishes three goals: 1. bump 6.6 to 6.6.33 2. kernel: modules: video: change package definition for fb for upstream changes[1] 3. kernel/multiple subtargets: add CONFIG_FB_IOMEM_FOPS=y to all subtargets which also set CONFIG_FB_CORE=y. Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.33 Removed upstreamed: pending-6.6/195-block-fix-and-simplify-blkdevparts-cmdline-parsing.patch[2] gemini/patches-6.6/0003-net-ethernet-cortina-Locking-fixes.patch[3] Manually rebased: ramips/patches-6.6/810-uvc-add-iPassion-iP2970-support.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=c00e8fd749502c02085534c60b1edca4fc479c91 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=99bbbd9aea059f8a206736dc601be2ae61d366fb 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.33&id=8f6f82d6a205ceb3aba8d279f9ff6eeea0b1689b Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Tested-by: Stijn Segers <foss@volatilesystems.org> Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
committed by
Hauke Mehrtens
parent
fc9cb9b609
commit
f34620f146
@@ -162,6 +162,7 @@ CONFIG_FB=y
|
||||
CONFIG_FB_CORE=y
|
||||
CONFIG_FB_DEFERRED_IO=y
|
||||
CONFIG_FB_DMAMEM_HELPERS=y
|
||||
CONFIG_FB_IOMEM_FOPS=y
|
||||
CONFIG_FB_SYSMEM_HELPERS=y
|
||||
CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
|
||||
CONFIG_FB_SYS_COPYAREA=y
|
||||
|
||||
@@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
/**
|
||||
* struct gmac_queue_page - page buffer per-page info
|
||||
@@ -1143,23 +1142,13 @@ static int gmac_map_tx_bufs(struct net_d
|
||||
@@ -1148,23 +1147,13 @@ static int gmac_map_tx_bufs(struct net_d
|
||||
struct gmac_txdesc *txd;
|
||||
skb_frag_t *skb_frag;
|
||||
dma_addr_t mapping;
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
From 81889eb2b37bc21df4ff259441e8fc12d4f27cd9 Mon Sep 17 00:00:00 2001
|
||||
From: Linus Walleij <linus.walleij@linaro.org>
|
||||
Date: Thu, 9 May 2024 08:48:31 +0200
|
||||
Subject: [PATCH] net: ethernet: cortina: Locking fixes
|
||||
|
||||
This fixes a probably long standing problem in the Cortina
|
||||
Gemini ethernet driver: there are some paths in the code
|
||||
where the IRQ registers are written without taking the proper
|
||||
locks.
|
||||
|
||||
Fixes: 4d5ae32f5e1e ("net: ethernet: Add a driver for Gemini gigabit ethernet")
|
||||
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
---
|
||||
drivers/net/ethernet/cortina/gemini.c | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/ethernet/cortina/gemini.c
|
||||
+++ b/drivers/net/ethernet/cortina/gemini.c
|
||||
@@ -1107,10 +1107,13 @@ static void gmac_tx_irq_enable(struct ne
|
||||
{
|
||||
struct gemini_ethernet_port *port = netdev_priv(netdev);
|
||||
struct gemini_ethernet *geth = port->geth;
|
||||
+ unsigned long flags;
|
||||
u32 val, mask;
|
||||
|
||||
netdev_dbg(netdev, "%s device %d\n", __func__, netdev->dev_id);
|
||||
|
||||
+ spin_lock_irqsave(&geth->irq_lock, flags);
|
||||
+
|
||||
mask = GMAC0_IRQ0_TXQ0_INTS << (6 * netdev->dev_id + txq);
|
||||
|
||||
if (en)
|
||||
@@ -1119,6 +1122,8 @@ static void gmac_tx_irq_enable(struct ne
|
||||
val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG);
|
||||
val = en ? val | mask : val & ~mask;
|
||||
writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG);
|
||||
+
|
||||
+ spin_unlock_irqrestore(&geth->irq_lock, flags);
|
||||
}
|
||||
|
||||
static void gmac_tx_irq(struct net_device *netdev, unsigned int txq_num)
|
||||
@@ -1415,15 +1420,19 @@ static unsigned int gmac_rx(struct net_d
|
||||
union gmac_rxdesc_3 word3;
|
||||
struct page *page = NULL;
|
||||
unsigned int page_offs;
|
||||
+ unsigned long flags;
|
||||
unsigned short r, w;
|
||||
union dma_rwptr rw;
|
||||
dma_addr_t mapping;
|
||||
int frag_nr = 0;
|
||||
|
||||
+ spin_lock_irqsave(&geth->irq_lock, flags);
|
||||
rw.bits32 = readl(ptr_reg);
|
||||
/* Reset interrupt as all packages until here are taken into account */
|
||||
writel(DEFAULT_Q0_INT_BIT << netdev->dev_id,
|
||||
geth->base + GLOBAL_INTERRUPT_STATUS_1_REG);
|
||||
+ spin_unlock_irqrestore(&geth->irq_lock, flags);
|
||||
+
|
||||
r = rw.bits.rptr;
|
||||
w = rw.bits.wptr;
|
||||
|
||||
@@ -1726,10 +1735,9 @@ static irqreturn_t gmac_irq(int irq, voi
|
||||
gmac_update_hw_stats(netdev);
|
||||
|
||||
if (val & (GMAC0_RX_OVERRUN_INT_BIT << (netdev->dev_id * 8))) {
|
||||
+ spin_lock(&geth->irq_lock);
|
||||
writel(GMAC0_RXDERR_INT_BIT << (netdev->dev_id * 8),
|
||||
geth->base + GLOBAL_INTERRUPT_STATUS_4_REG);
|
||||
-
|
||||
- spin_lock(&geth->irq_lock);
|
||||
u64_stats_update_begin(&port->ir_stats_syncp);
|
||||
++port->stats.rx_fifo_errors;
|
||||
u64_stats_update_end(&port->ir_stats_syncp);
|
||||
Reference in New Issue
Block a user