diff options
| author | John Audia | 2026-05-07 11:52:08 +0000 |
|---|---|---|
| committer | Hauke Mehrtens | 2026-05-12 21:08:44 +0000 |
| commit | a9e851a0d026283be686ff06f178cdf9806b88c2 (patch) | |
| tree | ef668725b578adaf91c3d9a71ee6ecb6974a8613 | |
| parent | 80f009766f1fca1f538a99f383cc7f27eff0e41a (diff) | |
| download | openwrt-a9e851a0d026283be686ff06f178cdf9806b88c2.tar.gz | |
kernel: bump 6.12 to 6.12.86
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.86
Removed upstreamed:
mvebu/patches-6.12/101-arm64-dts-marvell-uDPU-add-ethernet-aliases.patch[1]
Manually rebased:
pending-6.12/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch
All other patches automatically rebased via update_kernel.sh
1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.86&id=e58e97c1441ecbc1f153795f5857e725ebb96bdf
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23253
(cherry picked from commit f72b368b510ab39fdddc8de462b065f4bbc3bd47)
Link: https://github.com/openwrt/openwrt/pull/23270
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
29 files changed, 61 insertions, 94 deletions
diff --git a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch index f372f3ae22..ab0cf0a8ab 100644 --- a/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.12/900-unaligned_access_hacks.patch @@ -312,7 +312,7 @@ SVN-Revision: 35130 case IPV6_2292HOPOPTS: --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c -@@ -990,7 +990,7 @@ static bool ipv6_hop_jumbo(struct sk_buf +@@ -993,7 +993,7 @@ static bool ipv6_hop_jumbo(struct sk_buf goto drop; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch index e522ad3f95..583dbe6de0 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0057-MMC-added-alternative-MMC-driver.patch @@ -285,7 +285,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> static inline int mmc_blk_part_switch(struct mmc_card *card, unsigned int part_type); static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, -@@ -3313,6 +3320,8 @@ static int mmc_blk_probe(struct mmc_card +@@ -3321,6 +3328,8 @@ static int mmc_blk_probe(struct mmc_card { struct mmc_blk_data *md; int ret = 0; @@ -294,7 +294,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> /* * Check that the card supports the command class(es) we need. -@@ -3320,7 +3329,16 @@ static int mmc_blk_probe(struct mmc_card +@@ -3328,7 +3337,16 @@ static int mmc_blk_probe(struct mmc_card if (!(card->csd.cmdclass & CCC_BLOCK_READ)) return -ENODEV; @@ -312,7 +312,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> card->complete_wq = alloc_workqueue("mmc_complete", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); -@@ -3335,6 +3353,17 @@ static int mmc_blk_probe(struct mmc_card +@@ -3343,6 +3361,17 @@ static int mmc_blk_probe(struct mmc_card goto out_free; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0058-mmc-block-Don-t-do-single-sector-reads-during-recove.patch b/target/linux/bcm27xx/patches-6.12/950-0058-mmc-block-Don-t-do-single-sector-reads-during-recove.patch index bfcfcc0abb..ec9d51a41f 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0058-mmc-block-Don-t-do-single-sector-reads-during-recove.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0058-mmc-block-Don-t-do-single-sector-reads-during-recove.patch @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2011,7 +2011,7 @@ static void mmc_blk_mq_rw_recovery(struc +@@ -2017,7 +2017,7 @@ static void mmc_blk_mq_rw_recovery(struc return; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch index c31cb6838c..ca24d156ad 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0124-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch @@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> * @dev: the device whose endpoint is being disabled --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -1879,6 +1879,8 @@ extern int usb_clear_halt(struct usb_dev +@@ -1880,6 +1880,8 @@ extern int usb_clear_halt(struct usb_dev extern int usb_reset_configuration(struct usb_device *dev); extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr); diff --git a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch index 88c67d2ba5..0491be4369 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0125-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> * non-error returns are a promise to giveback() the urb later * we drop ownership so next owner (or urb unlink) can get it */ -@@ -5387,6 +5490,7 @@ static const struct hc_driver xhci_hc_dr +@@ -5386,6 +5489,7 @@ static const struct hc_driver xhci_hc_dr .endpoint_reset = xhci_endpoint_reset, .check_bandwidth = xhci_check_bandwidth, .reset_bandwidth = xhci_reset_bandwidth, diff --git a/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch b/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch index 0f7420cb55..79af1ab3d6 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0172-spi-Force-CS_HIGH-if-GPIO-descriptors-are-used.patch @@ -32,15 +32,15 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -3901,6 +3901,7 @@ static int spi_set_cs_timing(struct spi_ - */ - int spi_setup(struct spi_device *spi) +@@ -3883,6 +3883,7 @@ static int spi_set_cs_timing(struct spi_ + + static int __spi_setup(struct spi_device *spi, bool initial_setup) { + struct spi_controller *ctlr = spi->controller; unsigned bad_bits, ugly_bits; int status; -@@ -3927,6 +3928,14 @@ int spi_setup(struct spi_device *spi) +@@ -3909,6 +3910,14 @@ static int __spi_setup(struct spi_device "setup: MOSI configured to idle low and high at the same time.\n"); return -EINVAL; } diff --git a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch index c351e132d0..2b695742ed 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0344-sdhci-Add-SD-Express-hook.patch @@ -12,7 +12,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -1248,7 +1248,11 @@ static const struct dwcmshc_pltfm_data s +@@ -1261,7 +1261,11 @@ static const struct dwcmshc_pltfm_data s .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | diff --git a/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch b/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch index 2eee2bbc70..a9ee1ad96c 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch @@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -@@ -1150,10 +1162,11 @@ static int sg2042_init(struct device *de +@@ -1163,10 +1175,11 @@ static int sg2042_init(struct device *de } static const struct sdhci_ops sdhci_dwcmshc_ops = { @@ -61,7 +61,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> .reset = dwcmshc_reset, .adma_write_desc = dwcmshc_adma_write_desc, .irq = dwcmshc_cqe_irq_handler, -@@ -1226,8 +1239,10 @@ static const struct sdhci_ops sdhci_dwcm +@@ -1239,8 +1252,10 @@ static const struct sdhci_ops sdhci_dwcm static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = { .pdata = { .ops = &sdhci_dwcmshc_ops, @@ -74,7 +74,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> }, }; -@@ -1242,6 +1257,15 @@ static const struct dwcmshc_pltfm_data s +@@ -1255,6 +1270,15 @@ static const struct dwcmshc_pltfm_data s }; #endif @@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { .pdata = { .ops = &sdhci_dwcmshc_rk35xx_ops, -@@ -1365,6 +1389,10 @@ dsbl_cqe_caps: +@@ -1378,6 +1402,10 @@ dsbl_cqe_caps: static const struct of_device_id sdhci_dwcmshc_dt_ids[] = { { @@ -101,7 +101,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> .compatible = "rockchip,rk3588-dwcmshc", .data = &sdhci_dwcmshc_rk35xx_pdata, }, -@@ -1457,13 +1485,32 @@ static int dwcmshc_probe(struct platform +@@ -1470,13 +1498,32 @@ static int dwcmshc_probe(struct platform priv->bus_clk = devm_clk_get(dev, "bus"); if (!IS_ERR(priv->bus_clk)) clk_prepare_enable(priv->bus_clk); @@ -134,7 +134,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> priv->vendor_specific_area1 = sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK; -@@ -1523,6 +1570,7 @@ err_rpm: +@@ -1536,6 +1583,7 @@ err_rpm: pm_runtime_put_noidle(dev); err_clk: clk_disable_unprepare(pltfm_host->clk); diff --git a/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch b/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch index b67764f162..fd017a03a4 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0440-mmc-restrict-posted-write-counts-for-SD-cards-in-CQ-.patch @@ -38,7 +38,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -1617,6 +1617,8 @@ static void mmc_blk_cqe_complete_rq(stru +@@ -1623,6 +1623,8 @@ static void mmc_blk_cqe_complete_rq(stru spin_lock_irqsave(&mq->lock, flags); @@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> mq->in_flight[issue_type] -= 1; put_card = (mmc_tot_in_flight(mq) == 0); -@@ -2133,6 +2135,8 @@ static void mmc_blk_mq_complete_rq(struc +@@ -2139,6 +2141,8 @@ static void mmc_blk_mq_complete_rq(struc struct mmc_queue_req *mqrq = req_to_mmc_queue_req(req); unsigned int nr_bytes = mqrq->brq.data.bytes_xfered; @@ -56,7 +56,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> if (nr_bytes) { if (blk_update_request(req, BLK_STS_OK, nr_bytes)) blk_mq_requeue_request(req, true); -@@ -2227,13 +2231,16 @@ static void mmc_blk_mq_poll_completion(s +@@ -2235,13 +2239,16 @@ static void mmc_blk_mq_poll_completion(s mmc_blk_urgent_bkops(mq, mqrq); } @@ -74,7 +74,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> mq->in_flight[issue_type] -= 1; put_card = (mmc_tot_in_flight(mq) == 0); -@@ -2267,7 +2274,7 @@ static void mmc_blk_mq_post_req(struct m +@@ -2275,7 +2282,7 @@ static void mmc_blk_mq_post_req(struct m blk_mq_complete_request(req); } @@ -135,7 +135,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> put_card = true; --- a/drivers/mmc/core/queue.h +++ b/drivers/mmc/core/queue.h -@@ -79,6 +79,7 @@ struct mmc_queue { +@@ -82,6 +82,7 @@ struct mmc_queue { struct request_queue *queue; spinlock_t lock; int in_flight[MMC_ISSUE_MAX]; diff --git a/target/linux/bcm27xx/patches-6.12/950-0441-mmc-don-t-reference-requests-after-finishing-them.patch b/target/linux/bcm27xx/patches-6.12/950-0441-mmc-don-t-reference-requests-after-finishing-them.patch index 6b321d20e4..b6f9adcac2 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0441-mmc-don-t-reference-requests-after-finishing-them.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0441-mmc-don-t-reference-requests-after-finishing-them.patch @@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -1586,6 +1586,7 @@ static void mmc_blk_cqe_complete_rq(stru +@@ -1589,6 +1589,7 @@ static void mmc_blk_cqe_complete_rq(stru struct request_queue *q = req->q; struct mmc_host *host = mq->card->host; enum mmc_issue_type issue_type = mmc_issue_type(mq, req); @@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> unsigned long flags; bool put_card; int err; -@@ -1617,7 +1618,7 @@ static void mmc_blk_cqe_complete_rq(stru +@@ -1623,7 +1624,7 @@ static void mmc_blk_cqe_complete_rq(stru spin_lock_irqsave(&mq->lock, flags); @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> mq->pending_writes--; mq->in_flight[issue_type] -= 1; -@@ -2232,15 +2233,16 @@ static void mmc_blk_mq_poll_completion(s +@@ -2240,15 +2241,16 @@ static void mmc_blk_mq_poll_completion(s } static void mmc_blk_mq_dec_in_flight(struct mmc_queue *mq, enum mmc_issue_type issue_type, @@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> mq->in_flight[issue_type] -= 1; put_card = (mmc_tot_in_flight(mq) == 0); -@@ -2255,6 +2257,7 @@ static void mmc_blk_mq_post_req(struct m +@@ -2263,6 +2265,7 @@ static void mmc_blk_mq_post_req(struct m bool can_sleep) { enum mmc_issue_type issue_type = mmc_issue_type(mq, req); @@ -60,7 +60,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> struct mmc_queue_req *mqrq = req_to_mmc_queue_req(req); struct mmc_request *mrq = &mqrq->brq.mrq; struct mmc_host *host = mq->card->host; -@@ -2274,7 +2277,7 @@ static void mmc_blk_mq_post_req(struct m +@@ -2282,7 +2285,7 @@ static void mmc_blk_mq_post_req(struct m blk_mq_complete_request(req); } diff --git a/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch b/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch index 900f0f643b..903db59202 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0947-fixup-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clock.patch @@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -1257,13 +1257,15 @@ static const struct dwcmshc_pltfm_data s +@@ -1270,13 +1270,15 @@ static const struct dwcmshc_pltfm_data s }; #endif diff --git a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch index cdd429ba01..33f8ca71ad 100644 --- a/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch +++ b/target/linux/bcm27xx/patches-6.12/950-0950-usb-xhci-default-to-Intel-scheme-for-calculating-U1-.patch @@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring) { struct xhci_segment *seg; -@@ -4792,7 +4796,7 @@ static u16 xhci_calculate_u1_timeout(str +@@ -4791,7 +4795,7 @@ static u16 xhci_calculate_u1_timeout(str } } @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com> timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc); else timeout_ns = udev->u1_params.sel; -@@ -4856,7 +4860,7 @@ static u16 xhci_calculate_u2_timeout(str +@@ -4855,7 +4859,7 @@ static u16 xhci_calculate_u2_timeout(str } } diff --git a/target/linux/generic/backport-6.12/500-01-v6.13-block-add-support-for-defining-read-only-partitions.patch b/target/linux/generic/backport-6.12/500-01-v6.13-block-add-support-for-defining-read-only-partitions.patch index cdf505f3ce..78e2488e01 100644 --- a/target/linux/generic/backport-6.12/500-01-v6.13-block-add-support-for-defining-read-only-partitions.patch +++ b/target/linux/generic/backport-6.12/500-01-v6.13-block-add-support-for-defining-read-only-partitions.patch @@ -19,7 +19,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk> --- a/block/blk.h +++ b/block/blk.h -@@ -574,6 +574,7 @@ void blk_free_ext_minor(unsigned int min +@@ -593,6 +593,7 @@ void blk_free_ext_minor(unsigned int min #define ADDPART_FLAG_NONE 0 #define ADDPART_FLAG_RAID 1 #define ADDPART_FLAG_WHOLEDISK 2 diff --git a/target/linux/generic/backport-6.12/500-03-v6.13-mmc-block-attach-partitions-fwnode-if-found-in-mmc-c.patch b/target/linux/generic/backport-6.12/500-03-v6.13-mmc-block-attach-partitions-fwnode-if-found-in-mmc-c.patch index 0bdeaa85e4..b6977a5fc9 100644 --- a/target/linux/generic/backport-6.12/500-03-v6.13-mmc-block-attach-partitions-fwnode-if-found-in-mmc-c.patch +++ b/target/linux/generic/backport-6.12/500-03-v6.13-mmc-block-attach-partitions-fwnode-if-found-in-mmc-c.patch @@ -26,7 +26,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2517,6 +2517,56 @@ static inline int mmc_blk_readonly(struc +@@ -2525,6 +2525,56 @@ static inline int mmc_blk_readonly(struc !(card->csd.cmdclass & CCC_BLOCK_WRITE); } @@ -83,7 +83,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk> static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, struct device *parent, sector_t size, -@@ -2525,6 +2575,7 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2533,6 +2583,7 @@ static struct mmc_blk_data *mmc_blk_allo int area_type, unsigned int part_type) { @@ -91,7 +91,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk> struct mmc_blk_data *md; int devidx, ret; char cap_str[10]; -@@ -2626,7 +2677,9 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2634,7 +2685,9 @@ static struct mmc_blk_data *mmc_blk_allo /* used in ->open, must be set before add_disk: */ if (area_type == MMC_BLK_DATA_AREA_MAIN) dev_set_drvdata(&card->dev, md); diff --git a/target/linux/generic/backport-6.12/822-v6.19-ALSA-usb-audio-Convert-to-common-field_-get-prep-hel.patch b/target/linux/generic/backport-6.12/822-v6.19-ALSA-usb-audio-Convert-to-common-field_-get-prep-hel.patch index ad4c55e11c..d289480945 100644 --- a/target/linux/generic/backport-6.12/822-v6.19-ALSA-usb-audio-Convert-to-common-field_-get-prep-hel.patch +++ b/target/linux/generic/backport-6.12/822-v6.19-ALSA-usb-audio-Convert-to-common-field_-get-prep-hel.patch @@ -15,7 +15,7 @@ Signed-off-by: Yury Norov (NVIDIA) <yury.norov@gmail.com> --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c -@@ -3367,10 +3367,6 @@ static int snd_bbfpro_controls_create(st +@@ -3369,10 +3369,6 @@ static int snd_bbfpro_controls_create(st #define RME_DIGIFACE_REGISTER(reg, mask) (((reg) << 16) | (mask)) #define RME_DIGIFACE_INVERT BIT(31) diff --git a/target/linux/generic/hack-6.12/499-LEGACY-block-partitions-populate-fwnode.patch b/target/linux/generic/hack-6.12/499-LEGACY-block-partitions-populate-fwnode.patch index f7ec9efba7..c87cac5455 100644 --- a/target/linux/generic/hack-6.12/499-LEGACY-block-partitions-populate-fwnode.patch +++ b/target/linux/generic/hack-6.12/499-LEGACY-block-partitions-populate-fwnode.patch @@ -117,7 +117,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2679,6 +2679,10 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2687,6 +2687,10 @@ static struct mmc_blk_data *mmc_blk_allo if (area_type == MMC_BLK_DATA_AREA_MAIN) dev_set_drvdata(&card->dev, md); disk_fwnode = mmc_blk_get_partitions_node(parent, subname); diff --git a/target/linux/generic/kernel-6.12 b/target/linux/generic/kernel-6.12 index 42b2621682..079419457a 100644 --- a/target/linux/generic/kernel-6.12 +++ b/target/linux/generic/kernel-6.12 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.12 = .85 -LINUX_KERNEL_HASH-6.12.85 = e35ac999f40a6874493d8d60f33f1150d7a89ae5841c428da82257fbcd070aed +LINUX_VERSION-6.12 = .86 +LINUX_KERNEL_HASH-6.12.86 = edef22b327c7cbf39cdbf8d717fffa344f1ca299e513990e21705b3bf26dbb5d diff --git a/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch b/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch index 46c88a0682..595b529e72 100644 --- a/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch +++ b/target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/Makefile +++ b/Makefile -@@ -590,7 +590,7 @@ export RUSTC_BOOTSTRAP := 1 +@@ -591,7 +591,7 @@ export RUSTC_BOOTSTRAP := 1 # Allows finding `.clippy.toml` in out-of-srctree builds. export CLIPPY_CONF_DIR := $(srctree) diff --git a/target/linux/generic/pending-6.12/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch b/target/linux/generic/pending-6.12/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch index 3abeacaffb..e59de502a3 100644 --- a/target/linux/generic/pending-6.12/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch +++ b/target/linux/generic/pending-6.12/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch @@ -15,10 +15,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/bridge/br_arp_nd_proxy.c +++ b/net/bridge/br_arp_nd_proxy.c -@@ -204,7 +204,10 @@ void br_do_proxy_suppress_arp(struct sk_ +@@ -205,7 +205,10 @@ void br_do_proxy_suppress_arp(struct sk_ if ((p && (p->flags & BR_PROXYARP)) || - (f->dst && (f->dst->flags & BR_PROXYARP_WIFI)) || - br_is_neigh_suppress_enabled(f->dst, vid)) { + (dst && (dst->flags & BR_PROXYARP_WIFI)) || + br_is_neigh_suppress_enabled(dst, vid)) { - if (!vid) + replied = true; + if (!memcmp(n->ha, sha, dev->addr_len)) @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> br_arp_send(br, p, skb->dev, sip, tip, sha, n->ha, sha, 0, 0); else -@@ -212,7 +215,6 @@ void br_do_proxy_suppress_arp(struct sk_ +@@ -213,7 +216,6 @@ void br_do_proxy_suppress_arp(struct sk_ sha, n->ha, sha, skb->vlan_proto, skb_vlan_tag_get(skb)); diff --git a/target/linux/generic/pending-6.12/250-kernel-fork-Increase-minimum-number-of-allowed-threa.patch b/target/linux/generic/pending-6.12/250-kernel-fork-Increase-minimum-number-of-allowed-threa.patch index 5255a9cd76..449e8e0263 100644 --- a/target/linux/generic/pending-6.12/250-kernel-fork-Increase-minimum-number-of-allowed-threa.patch +++ b/target/linux/generic/pending-6.12/250-kernel-fork-Increase-minimum-number-of-allowed-threa.patch @@ -26,7 +26,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -123,7 +123,7 @@ +@@ -124,7 +124,7 @@ /* * Minimum number of threads to boot the kernel */ diff --git a/target/linux/generic/pending-6.12/457-mmc-block-set-GENHD_FL_NVMEM.patch b/target/linux/generic/pending-6.12/457-mmc-block-set-GENHD_FL_NVMEM.patch index 955fa6676e..354b850185 100644 --- a/target/linux/generic/pending-6.12/457-mmc-block-set-GENHD_FL_NVMEM.patch +++ b/target/linux/generic/pending-6.12/457-mmc-block-set-GENHD_FL_NVMEM.patch @@ -12,7 +12,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c -@@ -2644,6 +2644,7 @@ static struct mmc_blk_data *mmc_blk_allo +@@ -2652,6 +2652,7 @@ static struct mmc_blk_data *mmc_blk_allo md->disk->major = MMC_BLOCK_MAJOR; md->disk->minors = perdev_minors; md->disk->first_minor = devidx * perdev_minors; diff --git a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch index aca7ae15cc..c3b2f9dd50 100644 --- a/target/linux/generic/pending-6.12/920-mangle_bootargs.patch +++ b/target/linux/generic/pending-6.12/920-mangle_bootargs.patch @@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> /* * We need to store the untouched command line for future reference. * We also need to store the touched command line since the parameter -@@ -939,6 +962,7 @@ void start_kernel(void) +@@ -938,6 +961,7 @@ void start_kernel(void) jump_label_init(); static_call_init(); early_security_init(); diff --git a/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch b/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch index f2fb62baa1..7f008f6baf 100644 --- a/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch +++ b/target/linux/ipq806x/patches-6.12/902-ARM-decompressor-support-for-ATAGs-rootblock-parsing.patch @@ -177,7 +177,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> #include <linux/percpu.h> #include <linux/kmod.h> #include <linux/kprobes.h> -@@ -973,6 +974,17 @@ void start_kernel(void) +@@ -972,6 +973,17 @@ void start_kernel(void) pr_notice("Kernel command line: %s\n", saved_command_line); /* parameters may set static keys */ diff --git a/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch b/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch index 4e51dc21c6..218a0a89d7 100644 --- a/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch +++ b/target/linux/mediatek/patches-6.12/432-drivers-spi-Add-support-for-dynamic-calibration.patch @@ -11,7 +11,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c -@@ -1489,6 +1489,70 @@ static int spi_transfer_wait(struct spi_ +@@ -1491,6 +1491,70 @@ static int spi_transfer_wait(struct spi_ return 0; } @@ -82,7 +82,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> static void _spi_transfer_delay_ns(u32 ns) { if (!ns) -@@ -2347,6 +2411,75 @@ void spi_flush_queue(struct spi_controll +@@ -2349,6 +2413,75 @@ void spi_flush_queue(struct spi_controll /*-------------------------------------------------------------------------*/ #if defined(CONFIG_OF) @@ -158,7 +158,7 @@ Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com> static void of_spi_parse_dt_cs_delay(struct device_node *nc, struct spi_delay *delay, const char *prop) { -@@ -2511,6 +2644,10 @@ of_register_spi_device(struct spi_contro +@@ -2513,6 +2646,10 @@ of_register_spi_device(struct spi_contro if (rc) goto err_out; diff --git a/target/linux/mvebu/patches-6.12/101-arm64-dts-marvell-uDPU-add-ethernet-aliases.patch b/target/linux/mvebu/patches-6.12/101-arm64-dts-marvell-uDPU-add-ethernet-aliases.patch deleted file mode 100644 index 8530f2ff31..0000000000 --- a/target/linux/mvebu/patches-6.12/101-arm64-dts-marvell-uDPU-add-ethernet-aliases.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 4b23f8aecf46484cefb5563b0c255ac4e0cd52f9 Mon Sep 17 00:00:00 2001 -From: Robert Marko <robert.marko@sartura.hr> -Date: Tue, 27 Jan 2026 13:24:59 +0100 -Subject: [PATCH] arm64: dts: marvell: uDPU: add ethernet aliases - -On eDPU plus, which is an updated revision of eDPU which uses an external -MV88E6361 switch we are relying on U-Boot to detect the board, and then -enable and disable the required nodes for that revision. - -However, it seems that I missed adding the required aliases for ethernet -controllers, and this worked as in OpenWrt we had added those locally. - -Cc: stable@vger.kernel.org -Fixes: 660b8b2f3944 ("arm64: dts: marvell: eDPU: add support for version with external switch") -Signed-off-by: Robert Marko <robert.marko@sartura.hr> ---- - arch/arm64/boot/dts/marvell/armada-3720-uDPU.dtsi | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dtsi -+++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dtsi -@@ -15,6 +15,11 @@ - #include "armada-372x.dtsi" - - / { -+ aliases { -+ ethernet0 = ð0; -+ ethernet1 = ð1; -+ }; -+ - chosen { - stdout-path = "serial0:115200n8"; - }; diff --git a/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch b/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch index b0a9a31232..3425e58d5c 100644 --- a/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch +++ b/target/linux/mvebu/patches-6.12/300-mvebu-Mangle-bootloader-s-kernel-arguments.patch @@ -258,7 +258,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com> static int kernel_init(void *); /* -@@ -972,6 +976,18 @@ void start_kernel(void) +@@ -971,6 +975,18 @@ void start_kernel(void) boot_cpu_hotplug_init(); pr_notice("Kernel command line: %s\n", saved_command_line); diff --git a/target/linux/rockchip/patches-6.12/037-04-v6.19-mmc-sdhci-of-dwcmshc-Add-command-queue-support-for-rockch.patch b/target/linux/rockchip/patches-6.12/037-04-v6.19-mmc-sdhci-of-dwcmshc-Add-command-queue-support-for-rockch.patch index e6c632df2d..50ba3c9987 100644 --- a/target/linux/rockchip/patches-6.12/037-04-v6.19-mmc-sdhci-of-dwcmshc-Add-command-queue-support-for-rockch.patch +++ b/target/linux/rockchip/patches-6.12/037-04-v6.19-mmc-sdhci-of-dwcmshc-Add-command-queue-support-for-rockch.patch @@ -117,7 +117,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> static void dwcmshc_rk3568_set_clock(struct sdhci_host *host, unsigned int clock) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -@@ -741,6 +807,10 @@ static void rk35xx_sdhci_reset(struct sd +@@ -754,6 +820,10 @@ static void rk35xx_sdhci_reset(struct sd struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct dwcmshc_priv *dwc_priv = sdhci_pltfm_priv(pltfm_host); struct rk35xx_priv *priv = dwc_priv->priv; @@ -128,7 +128,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> if (mask & SDHCI_RESET_ALL && priv->reset) { reset_control_assert(priv->reset); -@@ -749,6 +819,9 @@ static void rk35xx_sdhci_reset(struct sd +@@ -762,6 +832,9 @@ static void rk35xx_sdhci_reset(struct sd } sdhci_reset(host, mask); @@ -138,7 +138,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> } static int dwcmshc_rk35xx_init(struct device *dev, struct sdhci_host *host, -@@ -1242,6 +1315,15 @@ static const struct dwcmshc_pltfm_data s +@@ -1255,6 +1328,15 @@ static const struct dwcmshc_pltfm_data s }; #endif @@ -154,7 +154,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { .pdata = { .ops = &sdhci_dwcmshc_rk35xx_ops, -@@ -1250,6 +1332,7 @@ static const struct dwcmshc_pltfm_data s +@@ -1263,6 +1345,7 @@ static const struct dwcmshc_pltfm_data s .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN, }, @@ -162,7 +162,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> .init = dwcmshc_rk35xx_init, .postinit = dwcmshc_rk35xx_postinit, }; -@@ -1299,7 +1382,8 @@ static const struct cqhci_host_ops dwcms +@@ -1312,7 +1395,8 @@ static const struct cqhci_host_ops dwcms .set_tran_desc = dwcmshc_set_tran_desc, }; @@ -172,7 +172,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> { struct cqhci_host *cq_host; struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -@@ -1329,7 +1413,10 @@ static void dwcmshc_cqhci_init(struct sd +@@ -1342,7 +1426,10 @@ static void dwcmshc_cqhci_init(struct sd } cq_host->mmio = host->ioaddr + priv->vendor_specific_area2; @@ -184,7 +184,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> /* Enable using of 128-bit task descriptors */ dma64 = host->flags & SDHCI_USE_64_BIT_DMA; -@@ -1498,7 +1585,7 @@ static int dwcmshc_probe(struct platform +@@ -1511,7 +1598,7 @@ static int dwcmshc_probe(struct platform priv->vendor_specific_area2 = sdhci_readw(host, DWCMSHC_P_VENDOR_AREA2); diff --git a/target/linux/rockchip/patches-6.12/037-05-v6.19-mmc-sdhci-of-dwcmshc-Fix-command-queue-support-for-RK3576.patch b/target/linux/rockchip/patches-6.12/037-05-v6.19-mmc-sdhci-of-dwcmshc-Fix-command-queue-support-for-RK3576.patch index 14746cca15..f7975b7d75 100644 --- a/target/linux/rockchip/patches-6.12/037-05-v6.19-mmc-sdhci-of-dwcmshc-Fix-command-queue-support-for-RK3576.patch +++ b/target/linux/rockchip/patches-6.12/037-05-v6.19-mmc-sdhci-of-dwcmshc-Fix-command-queue-support-for-RK3576.patch @@ -45,7 +45,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -1345,6 +1345,7 @@ static const struct dwcmshc_pltfm_data s +@@ -1358,6 +1358,7 @@ static const struct dwcmshc_pltfm_data s .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN, }, diff --git a/target/linux/rockchip/patches-6.12/037-06-v6.19-mmc-sdhci-of-dwcmshc-Disable-internal-clock-auto-gate-for.patch b/target/linux/rockchip/patches-6.12/037-06-v6.19-mmc-sdhci-of-dwcmshc-Disable-internal-clock-auto-gate-for.patch index 45db5c1175..83283d1c00 100644 --- a/target/linux/rockchip/patches-6.12/037-06-v6.19-mmc-sdhci-of-dwcmshc-Disable-internal-clock-auto-gate-for.patch +++ b/target/linux/rockchip/patches-6.12/037-06-v6.19-mmc-sdhci-of-dwcmshc-Disable-internal-clock-auto-gate-for.patch @@ -39,4 +39,4 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> + extra |= BIT(4); sdhci_writel(host, extra, reg); - if (clock <= 52000000) { + /* Disable clock while config DLL */ |