All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	"Rafael J. Wysocki (Intel)" <rafael@kernel.org>,
	Thierry Reding <treding@nvidia.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 258/869] syscore: Pass context data to callbacks
Date: Sat, 17 Oct 2026 17:51:39 +0200	[thread overview]
Message-ID: <20261017160043.672549469@linuxfoundation.org> (raw)
In-Reply-To: <20261017160036.979869304@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Thierry Reding <treding@nvidia.com>

[ Upstream commit a97fbc3ee3e2a536fafaff04f21f45472db71769 ]

Several drivers can benefit from registering per-instance data along
with the syscore operations. To achieve this, move the modifiable fields
out of the syscore_ops structure and into a separate struct syscore that
can be registered with the framework. Add a void * driver data field for
drivers to store contextual data that will be passed to the syscore ops.

Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Stable-dep-of: e6d96073af68 ("soc/tegra: pmc: Fix unsafe generic_handle_irq() call")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm/mach-exynos/mcpm-exynos.c        | 12 ++--
 arch/arm/mach-exynos/suspend.c            | 48 +++++++------
 arch/arm/mach-pxa/generic.h               |  6 +-
 arch/arm/mach-pxa/irq.c                   | 10 ++-
 arch/arm/mach-pxa/mfp-pxa2xx.c            | 10 ++-
 arch/arm/mach-pxa/mfp-pxa3xx.c            | 10 ++-
 arch/arm/mach-pxa/pxa25x.c                |  4 +-
 arch/arm/mach-pxa/pxa27x.c                |  4 +-
 arch/arm/mach-pxa/pxa3xx.c                |  4 +-
 arch/arm/mach-pxa/smemc.c                 | 12 ++--
 arch/arm/mach-s3c/irq-pm-s3c64xx.c        | 12 ++--
 arch/arm/mach-s5pv210/pm.c                | 10 ++-
 arch/arm/mach-versatile/integrator_ap.c   | 12 ++--
 arch/arm/mm/cache-b15-rac.c               | 12 ++--
 arch/loongarch/kernel/smp.c               | 12 ++--
 arch/mips/alchemy/common/dbdma.c          | 12 ++--
 arch/mips/alchemy/common/irq.c            | 24 ++++---
 arch/mips/alchemy/common/usb.c            | 12 ++--
 arch/mips/pci/pci-alchemy.c               | 16 +++--
 arch/powerpc/platforms/cell/spu_base.c    | 10 ++-
 arch/powerpc/platforms/powermac/pic.c     | 12 ++--
 arch/powerpc/sysdev/fsl_lbc.c             | 12 ++--
 arch/powerpc/sysdev/fsl_pci.c             | 12 ++--
 arch/powerpc/sysdev/ipic.c                | 12 ++--
 arch/powerpc/sysdev/mpic.c                | 14 ++--
 arch/powerpc/sysdev/mpic_timer.c          | 10 ++-
 arch/sh/mm/pmb.c                          | 10 ++-
 arch/x86/events/amd/ibs.c                 | 12 ++--
 arch/x86/hyperv/hv_init.c                 | 12 ++--
 arch/x86/kernel/amd_gart_64.c             | 10 ++-
 arch/x86/kernel/apic/apic.c               | 12 ++--
 arch/x86/kernel/apic/io_apic.c            | 17 +++--
 arch/x86/kernel/cpu/aperfmperf.c          | 20 +++---
 arch/x86/kernel/cpu/intel_epb.c           | 16 +++--
 arch/x86/kernel/cpu/mce/core.c            | 14 ++--
 arch/x86/kernel/cpu/microcode/core.c      | 15 ++++-
 arch/x86/kernel/cpu/mtrr/legacy.c         | 12 ++--
 arch/x86/kernel/cpu/umwait.c              | 10 ++-
 arch/x86/kernel/i8237.c                   | 10 ++-
 arch/x86/kernel/i8259.c                   | 14 ++--
 arch/x86/kernel/kvm.c                     | 12 ++--
 drivers/acpi/pci_link.c                   | 10 ++-
 drivers/acpi/sleep.c                      | 12 ++--
 drivers/base/firmware_loader/main.c       | 12 ++--
 drivers/base/syscore.c                    | 82 ++++++++++++-----------
 drivers/bus/mvebu-mbus.c                  | 16 +++--
 drivers/clk/at91/pmc.c                    | 12 ++--
 drivers/clk/imx/clk-vf610.c               | 12 ++--
 drivers/clk/ingenic/jz4725b-cgu.c         |  2 +-
 drivers/clk/ingenic/jz4740-cgu.c          |  2 +-
 drivers/clk/ingenic/jz4755-cgu.c          |  2 +-
 drivers/clk/ingenic/jz4760-cgu.c          |  2 +-
 drivers/clk/ingenic/jz4770-cgu.c          |  2 +-
 drivers/clk/ingenic/jz4780-cgu.c          |  2 +-
 drivers/clk/ingenic/pm.c                  | 14 ++--
 drivers/clk/ingenic/pm.h                  |  2 +-
 drivers/clk/ingenic/tcu.c                 | 12 ++--
 drivers/clk/ingenic/x1000-cgu.c           |  2 +-
 drivers/clk/ingenic/x1830-cgu.c           |  2 +-
 drivers/clk/mvebu/common.c                | 12 ++--
 drivers/clk/rockchip/clk-rk3288.c         | 12 ++--
 drivers/clk/samsung/clk-s5pv210-audss.c   | 12 ++--
 drivers/clk/samsung/clk.c                 | 12 ++--
 drivers/clk/tegra/clk-tegra210.c          | 12 ++--
 drivers/clocksource/timer-armada-370-xp.c | 12 ++--
 drivers/cpuidle/cpuidle-psci.c            | 12 ++--
 drivers/gpio/gpio-mxc.c                   | 12 ++--
 drivers/gpio/gpio-pxa.c                   | 12 ++--
 drivers/gpio/gpio-sa1100.c                | 12 ++--
 drivers/hv/vmbus_drv.c                    | 14 ++--
 drivers/iommu/amd/init.c                  | 16 +++--
 drivers/iommu/intel/iommu.c               | 12 ++--
 drivers/irqchip/exynos-combiner.c         | 14 ++--
 drivers/irqchip/irq-armada-370-xp.c       | 12 ++--
 drivers/irqchip/irq-bcm7038-l1.c          | 12 ++--
 drivers/irqchip/irq-gic-v3-its.c          | 12 ++--
 drivers/irqchip/irq-i8259.c               | 12 ++--
 drivers/irqchip/irq-imx-gpcv2.c           | 16 +++--
 drivers/irqchip/irq-loongson-eiointc.c    | 12 ++--
 drivers/irqchip/irq-loongson-htpic.c      | 10 ++-
 drivers/irqchip/irq-loongson-htvec.c      | 12 ++--
 drivers/irqchip/irq-loongson-pch-lpc.c    | 12 ++--
 drivers/irqchip/irq-loongson-pch-pic.c    | 12 ++--
 drivers/irqchip/irq-mchp-eic.c            | 12 ++--
 drivers/irqchip/irq-mst-intc.c            | 12 ++--
 drivers/irqchip/irq-mtk-cirq.c            | 12 ++--
 drivers/irqchip/irq-renesas-rzg2l.c       | 12 ++--
 drivers/irqchip/irq-sa11x0.c              | 12 ++--
 drivers/irqchip/irq-sifive-plic.c         | 12 ++--
 drivers/irqchip/irq-sun6i-r.c             | 18 +++--
 drivers/irqchip/irq-tegra.c               | 12 ++--
 drivers/irqchip/irq-vic.c                 | 12 ++--
 drivers/leds/trigger/ledtrig-cpu.c        | 14 ++--
 drivers/macintosh/via-pmu.c               | 12 ++--
 drivers/power/reset/sc27xx-poweroff.c     | 10 ++-
 drivers/sh/clk/core.c                     | 10 ++-
 drivers/sh/intc/core.c                    | 12 ++--
 drivers/soc/bcm/brcmstb/biuctrl.c         | 12 ++--
 drivers/soc/tegra/pmc.c                   | 17 +++--
 drivers/thermal/intel/intel_hfi.c         | 12 ++--
 drivers/xen/xen-acpi-processor.c          | 12 ++--
 include/linux/syscore_ops.h               | 15 +++--
 kernel/cpu_pm.c                           | 12 ++--
 kernel/irq/generic-chip.c                 | 14 ++--
 kernel/irq/pm.c                           | 11 ++-
 kernel/printk/printk.c                    | 11 ++-
 kernel/time/sched_clock.c                 | 22 ++++--
 kernel/time/timekeeping.c                 | 22 ++++--
 virt/kvm/kvm_main.c                       | 18 +++--
 109 files changed, 898 insertions(+), 470 deletions(-)

diff --git a/arch/arm/mach-exynos/mcpm-exynos.c b/arch/arm/mach-exynos/mcpm-exynos.c
index fd0dbeb93357d..cb7d8a7b14e0d 100644
--- a/arch/arm/mach-exynos/mcpm-exynos.c
+++ b/arch/arm/mach-exynos/mcpm-exynos.c
@@ -215,7 +215,7 @@ static const struct of_device_id exynos_dt_mcpm_match[] = {
 	{},
 };
 
-static void exynos_mcpm_setup_entry_point(void)
+static void exynos_mcpm_setup_entry_point(void *data)
 {
 	/*
 	 * U-Boot SPL is hardcoded to jump to the start of ns_sram_base_addr
@@ -228,10 +228,14 @@ static void exynos_mcpm_setup_entry_point(void)
 	__raw_writel(__pa_symbol(mcpm_entry_point), ns_sram_base_addr + 8);
 }
 
-static struct syscore_ops exynos_mcpm_syscore_ops = {
+static const struct syscore_ops exynos_mcpm_syscore_ops = {
 	.resume	= exynos_mcpm_setup_entry_point,
 };
 
+static struct syscore exynos_mcpm_syscore = {
+	.ops = &exynos_mcpm_syscore_ops,
+};
+
 static int __init exynos_mcpm_init(void)
 {
 	struct device_node *node;
@@ -300,9 +304,9 @@ static int __init exynos_mcpm_init(void)
 		pmu_raw_writel(value, EXYNOS_COMMON_OPTION(i));
 	}
 
-	exynos_mcpm_setup_entry_point();
+	exynos_mcpm_setup_entry_point(NULL);
 
-	register_syscore_ops(&exynos_mcpm_syscore_ops);
+	register_syscore(&exynos_mcpm_syscore);
 
 	return ret;
 }
diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index cac4e82f6c824..aca767935e20c 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -53,9 +53,9 @@ struct exynos_pm_data {
 
 	void (*pm_prepare)(void);
 	void (*pm_resume_prepare)(void);
-	void (*pm_resume)(void);
-	int (*pm_suspend)(void);
 	int (*cpu_suspend)(unsigned long);
+
+	const struct syscore_ops *syscore_ops;
 };
 
 /* Used only on Exynos542x/5800 */
@@ -377,7 +377,7 @@ static void exynos5420_pm_prepare(void)
 }
 
 
-static int exynos_pm_suspend(void)
+static int exynos_pm_suspend(void *data)
 {
 	exynos_pm_central_suspend();
 
@@ -391,7 +391,7 @@ static int exynos_pm_suspend(void)
 	return 0;
 }
 
-static int exynos5420_pm_suspend(void)
+static int exynos5420_pm_suspend(void *data)
 {
 	u32 this_cluster;
 
@@ -409,7 +409,7 @@ static int exynos5420_pm_suspend(void)
 	return 0;
 }
 
-static void exynos_pm_resume(void)
+static void exynos_pm_resume(void *data)
 {
 	u32 cpuid = read_cpuid_part();
 
@@ -430,7 +430,7 @@ static void exynos_pm_resume(void)
 	exynos_set_delayed_reset_assertion(true);
 }
 
-static void exynos3250_pm_resume(void)
+static void exynos3250_pm_resume(void *data)
 {
 	u32 cpuid = read_cpuid_part();
 
@@ -474,7 +474,7 @@ static void exynos5420_prepare_pm_resume(void)
 	}
 }
 
-static void exynos5420_pm_resume(void)
+static void exynos5420_pm_resume(void *data)
 {
 	unsigned long tmp;
 
@@ -597,41 +597,52 @@ static const struct platform_suspend_ops exynos_suspend_ops = {
 	.valid		= suspend_valid_only_mem,
 };
 
+static const struct syscore_ops exynos3250_syscore_ops = {
+	.suspend = exynos_pm_suspend,
+	.resume = exynos3250_pm_resume,
+};
+
 static const struct exynos_pm_data exynos3250_pm_data = {
 	.wkup_irq	= exynos3250_wkup_irq,
 	.wake_disable_mask = ((0xFF << 8) | (0x1F << 1)),
-	.pm_suspend	= exynos_pm_suspend,
-	.pm_resume	= exynos3250_pm_resume,
 	.pm_prepare	= exynos3250_pm_prepare,
 	.cpu_suspend	= exynos3250_cpu_suspend,
+	.syscore_ops	= &exynos3250_syscore_ops,
+};
+
+static const struct syscore_ops exynos_syscore_ops = {
+	.suspend = exynos_pm_suspend,
+	.resume = exynos_pm_resume,
 };
 
 static const struct exynos_pm_data exynos4_pm_data = {
 	.wkup_irq	= exynos4_wkup_irq,
 	.wake_disable_mask = ((0xFF << 8) | (0x1F << 1)),
-	.pm_suspend	= exynos_pm_suspend,
-	.pm_resume	= exynos_pm_resume,
 	.pm_prepare	= exynos_pm_prepare,
 	.cpu_suspend	= exynos_cpu_suspend,
+	.syscore_ops	= &exynos_syscore_ops,
 };
 
 static const struct exynos_pm_data exynos5250_pm_data = {
 	.wkup_irq	= exynos5250_wkup_irq,
 	.wake_disable_mask = ((0xFF << 8) | (0x1F << 1)),
-	.pm_suspend	= exynos_pm_suspend,
-	.pm_resume	= exynos_pm_resume,
 	.pm_prepare	= exynos_pm_prepare,
 	.cpu_suspend	= exynos_cpu_suspend,
+	.syscore_ops	= &exynos_syscore_ops,
+};
+
+static const struct syscore_ops exynos5420_syscore_ops = {
+	.resume = exynos5420_pm_resume,
+	.suspend = exynos5420_pm_suspend,
 };
 
 static const struct exynos_pm_data exynos5420_pm_data = {
 	.wkup_irq	= exynos5250_wkup_irq,
 	.wake_disable_mask = (0x7F << 7) | (0x1F << 1),
 	.pm_resume_prepare = exynos5420_prepare_pm_resume,
-	.pm_resume	= exynos5420_pm_resume,
-	.pm_suspend	= exynos5420_pm_suspend,
 	.pm_prepare	= exynos5420_pm_prepare,
 	.cpu_suspend	= exynos5420_cpu_suspend,
+	.syscore_ops	= &exynos5420_syscore_ops,
 };
 
 static const struct of_device_id exynos_pmu_of_device_ids[] __initconst = {
@@ -657,7 +668,7 @@ static const struct of_device_id exynos_pmu_of_device_ids[] __initconst = {
 	{ /*sentinel*/ },
 };
 
-static struct syscore_ops exynos_pm_syscore_ops;
+static struct syscore exynos_pm_syscore;
 
 void __init exynos_pm_init(void)
 {
@@ -685,10 +696,9 @@ void __init exynos_pm_init(void)
 	tmp |= pm_data->wake_disable_mask;
 	pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
 
-	exynos_pm_syscore_ops.suspend	= pm_data->pm_suspend;
-	exynos_pm_syscore_ops.resume	= pm_data->pm_resume;
+	exynos_pm_syscore.ops = pm_data->syscore_ops;
 
-	register_syscore_ops(&exynos_pm_syscore_ops);
+	register_syscore(&exynos_pm_syscore);
 	suspend_set_ops(&exynos_suspend_ops);
 
 	/*
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index c9c2c46ecead0..caad4fca8de3e 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -34,9 +34,9 @@ extern void __init pxa27x_map_io(void);
 extern void __init pxa3xx_init_irq(void);
 extern void __init pxa3xx_map_io(void);
 
-extern struct syscore_ops pxa_irq_syscore_ops;
-extern struct syscore_ops pxa2xx_mfp_syscore_ops;
-extern struct syscore_ops pxa3xx_mfp_syscore_ops;
+extern struct syscore pxa_irq_syscore;
+extern struct syscore pxa2xx_mfp_syscore;
+extern struct syscore pxa3xx_mfp_syscore;
 
 void __init pxa_set_ffuart_info(void *info);
 void __init pxa_set_btuart_info(void *info);
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
index a9ef710081472..78992c5d45ea4 100644
--- a/arch/arm/mach-pxa/irq.c
+++ b/arch/arm/mach-pxa/irq.c
@@ -179,7 +179,7 @@ void __init pxa_init_irq(int irq_nr, int (*fn)(struct irq_data *, unsigned int))
 static unsigned long saved_icmr[MAX_INTERNAL_IRQS/32];
 static unsigned long saved_ipr[MAX_INTERNAL_IRQS];
 
-static int pxa_irq_suspend(void)
+static int pxa_irq_suspend(void *data)
 {
 	int i;
 
@@ -198,7 +198,7 @@ static int pxa_irq_suspend(void)
 	return 0;
 }
 
-static void pxa_irq_resume(void)
+static void pxa_irq_resume(void *data)
 {
 	int i;
 
@@ -220,11 +220,15 @@ static void pxa_irq_resume(void)
 #define pxa_irq_resume		NULL
 #endif
 
-struct syscore_ops pxa_irq_syscore_ops = {
+static const struct syscore_ops pxa_irq_syscore_ops = {
 	.suspend	= pxa_irq_suspend,
 	.resume		= pxa_irq_resume,
 };
 
+struct syscore pxa_irq_syscore = {
+	.ops = &pxa_irq_syscore_ops,
+};
+
 #ifdef CONFIG_OF
 static const struct of_device_id intc_ids[] __initconst = {
 	{ .compatible = "marvell,pxa-intc", },
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
index f5a3d890f682e..d1347055fbe4f 100644
--- a/arch/arm/mach-pxa/mfp-pxa2xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
@@ -346,7 +346,7 @@ static unsigned long saved_gpdr[4];
 static unsigned long saved_gplr[4];
 static unsigned long saved_pgsr[4];
 
-static int pxa2xx_mfp_suspend(void)
+static int pxa2xx_mfp_suspend(void *data)
 {
 	int i;
 
@@ -385,7 +385,7 @@ static int pxa2xx_mfp_suspend(void)
 	return 0;
 }
 
-static void pxa2xx_mfp_resume(void)
+static void pxa2xx_mfp_resume(void *data)
 {
 	int i;
 
@@ -404,11 +404,15 @@ static void pxa2xx_mfp_resume(void)
 #define pxa2xx_mfp_resume	NULL
 #endif
 
-struct syscore_ops pxa2xx_mfp_syscore_ops = {
+static const struct syscore_ops pxa2xx_mfp_syscore_ops = {
 	.suspend	= pxa2xx_mfp_suspend,
 	.resume		= pxa2xx_mfp_resume,
 };
 
+struct syscore pxa2xx_mfp_syscore = {
+	.ops = &pxa2xx_mfp_syscore_ops,
+};
+
 static int __init pxa2xx_mfp_init(void)
 {
 	int i;
diff --git a/arch/arm/mach-pxa/mfp-pxa3xx.c b/arch/arm/mach-pxa/mfp-pxa3xx.c
index d16ab7451efef..fe7498fbb62b3 100644
--- a/arch/arm/mach-pxa/mfp-pxa3xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa3xx.c
@@ -27,13 +27,13 @@
  * a pull-down mode if they're an active low chip select, and we're
  * just entering standby.
  */
-static int pxa3xx_mfp_suspend(void)
+static int pxa3xx_mfp_suspend(void *data)
 {
 	mfp_config_lpm();
 	return 0;
 }
 
-static void pxa3xx_mfp_resume(void)
+static void pxa3xx_mfp_resume(void *data)
 {
 	mfp_config_run();
 
@@ -49,7 +49,11 @@ static void pxa3xx_mfp_resume(void)
 #define pxa3xx_mfp_resume	NULL
 #endif
 
-struct syscore_ops pxa3xx_mfp_syscore_ops = {
+static const struct syscore_ops pxa3xx_mfp_syscore_ops = {
 	.suspend	= pxa3xx_mfp_suspend,
 	.resume		= pxa3xx_mfp_resume,
 };
+
+struct syscore pxa3xx_mfp_syscore = {
+	.ops = &pxa3xx_mfp_syscore_ops,
+};
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 03e34841fc004..70509a5998142 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -235,8 +235,8 @@ static int __init pxa25x_init(void)
 
 		pxa25x_init_pm();
 
-		register_syscore_ops(&pxa_irq_syscore_ops);
-		register_syscore_ops(&pxa2xx_mfp_syscore_ops);
+		register_syscore(&pxa_irq_syscore);
+		register_syscore(&pxa2xx_mfp_syscore);
 
 		if (!of_have_populated_dt()) {
 			software_node_register(&pxa2xx_gpiochip_node);
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index f8382477d629e..ff63619790383 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -337,8 +337,8 @@ static int __init pxa27x_init(void)
 
 		pxa27x_init_pm();
 
-		register_syscore_ops(&pxa_irq_syscore_ops);
-		register_syscore_ops(&pxa2xx_mfp_syscore_ops);
+		register_syscore(&pxa_irq_syscore);
+		register_syscore(&pxa2xx_mfp_syscore);
 
 		if (!of_have_populated_dt()) {
 			software_node_register(&pxa2xx_gpiochip_node);
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 1d1e5713464dc..06c578ea658e3 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -424,8 +424,8 @@ static int __init pxa3xx_init(void)
 		if (cpu_is_pxa320())
 			enable_irq_wake(IRQ_WAKEUP1);
 
-		register_syscore_ops(&pxa_irq_syscore_ops);
-		register_syscore_ops(&pxa3xx_mfp_syscore_ops);
+		register_syscore(&pxa_irq_syscore);
+		register_syscore(&pxa3xx_mfp_syscore);
 	}
 
 	return ret;
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c
index 2d2a321d82f81..fb93a8f28356e 100644
--- a/arch/arm/mach-pxa/smemc.c
+++ b/arch/arm/mach-pxa/smemc.c
@@ -18,7 +18,7 @@ static unsigned long msc[2];
 static unsigned long sxcnfg, memclkcfg;
 static unsigned long csadrcfg[4];
 
-static int pxa3xx_smemc_suspend(void)
+static int pxa3xx_smemc_suspend(void *data)
 {
 	msc[0] = __raw_readl(MSC0);
 	msc[1] = __raw_readl(MSC1);
@@ -32,7 +32,7 @@ static int pxa3xx_smemc_suspend(void)
 	return 0;
 }
 
-static void pxa3xx_smemc_resume(void)
+static void pxa3xx_smemc_resume(void *data)
 {
 	__raw_writel(msc[0], MSC0);
 	__raw_writel(msc[1], MSC1);
@@ -46,11 +46,15 @@ static void pxa3xx_smemc_resume(void)
 	__raw_writel(0x2, CSMSADRCFG);
 }
 
-static struct syscore_ops smemc_syscore_ops = {
+static const struct syscore_ops smemc_syscore_ops = {
 	.suspend	= pxa3xx_smemc_suspend,
 	.resume		= pxa3xx_smemc_resume,
 };
 
+static struct syscore smemc_syscore = {
+	.ops = &smemc_syscore_ops,
+};
+
 static int __init smemc_init(void)
 {
 	if (cpu_is_pxa3xx()) {
@@ -64,7 +68,7 @@ static int __init smemc_init(void)
 		 */
 		__raw_writel(0x2, CSMSADRCFG);
 
-		register_syscore_ops(&smemc_syscore_ops);
+		register_syscore(&smemc_syscore);
 	}
 
 	return 0;
diff --git a/arch/arm/mach-s3c/irq-pm-s3c64xx.c b/arch/arm/mach-s3c/irq-pm-s3c64xx.c
index 4a1e935bada19..ab726c595001d 100644
--- a/arch/arm/mach-s3c/irq-pm-s3c64xx.c
+++ b/arch/arm/mach-s3c/irq-pm-s3c64xx.c
@@ -58,7 +58,7 @@ static struct irq_grp_save {
 
 static u32 irq_uart_mask[SERIAL_SAMSUNG_UARTS];
 
-static int s3c64xx_irq_pm_suspend(void)
+static int s3c64xx_irq_pm_suspend(void *data)
 {
 	struct irq_grp_save *grp = eint_grp_save;
 	int i;
@@ -79,7 +79,7 @@ static int s3c64xx_irq_pm_suspend(void)
 	return 0;
 }
 
-static void s3c64xx_irq_pm_resume(void)
+static void s3c64xx_irq_pm_resume(void *data)
 {
 	struct irq_grp_save *grp = eint_grp_save;
 	int i;
@@ -100,18 +100,22 @@ static void s3c64xx_irq_pm_resume(void)
 	S3C_PMDBG("%s: IRQ configuration restored\n", __func__);
 }
 
-static struct syscore_ops s3c64xx_irq_syscore_ops = {
+static const struct syscore_ops s3c64xx_irq_syscore_ops = {
 	.suspend = s3c64xx_irq_pm_suspend,
 	.resume	 = s3c64xx_irq_pm_resume,
 };
 
+static struct syscore s3c64xx_irq_syscore = {
+	.ops = &s3c64xx_irq_syscore_ops,
+};
+
 static __init int s3c64xx_syscore_init(void)
 {
 	/* Appropriate drivers (pinctrl, uart) handle this when using DT. */
 	if (of_have_populated_dt() || !soc_is_s3c64xx())
 		return 0;
 
-	register_syscore_ops(&s3c64xx_irq_syscore_ops);
+	register_syscore(&s3c64xx_irq_syscore);
 
 	return 0;
 }
diff --git a/arch/arm/mach-s5pv210/pm.c b/arch/arm/mach-s5pv210/pm.c
index 6fa70f787df4e..fa270750364cf 100644
--- a/arch/arm/mach-s5pv210/pm.c
+++ b/arch/arm/mach-s5pv210/pm.c
@@ -195,20 +195,24 @@ static const struct platform_suspend_ops s5pv210_suspend_ops = {
 /*
  * Syscore operations used to delay restore of certain registers.
  */
-static void s5pv210_pm_resume(void)
+static void s5pv210_pm_resume(void *data)
 {
 	s3c_pm_do_restore_core(s5pv210_core_save, ARRAY_SIZE(s5pv210_core_save));
 }
 
-static struct syscore_ops s5pv210_pm_syscore_ops = {
+static const struct syscore_ops s5pv210_pm_syscore_ops = {
 	.resume		= s5pv210_pm_resume,
 };
 
+static struct syscore s5pv210_pm_syscore = {
+	.ops = &s5pv210_pm_syscore_ops,
+};
+
 /*
  * Initialization entry point.
  */
 void __init s5pv210_pm_init(void)
 {
-	register_syscore_ops(&s5pv210_pm_syscore_ops);
+	register_syscore(&s5pv210_pm_syscore);
 	suspend_set_ops(&s5pv210_suspend_ops);
 }
diff --git a/arch/arm/mach-versatile/integrator_ap.c b/arch/arm/mach-versatile/integrator_ap.c
index 4bd6712e9f525..ee90d6619d0db 100644
--- a/arch/arm/mach-versatile/integrator_ap.c
+++ b/arch/arm/mach-versatile/integrator_ap.c
@@ -63,13 +63,13 @@ static void __init ap_map_io(void)
 #ifdef CONFIG_PM
 static unsigned long ic_irq_enable;
 
-static int irq_suspend(void)
+static int irq_suspend(void *data)
 {
 	ic_irq_enable = readl(VA_IC_BASE + IRQ_ENABLE);
 	return 0;
 }
 
-static void irq_resume(void)
+static void irq_resume(void *data)
 {
 	/* disable all irq sources */
 	cm_clear_irqs();
@@ -83,14 +83,18 @@ static void irq_resume(void)
 #define irq_resume NULL
 #endif
 
-static struct syscore_ops irq_syscore_ops = {
+static const struct syscore_ops irq_syscore_ops = {
 	.suspend	= irq_suspend,
 	.resume		= irq_resume,
 };
 
+static struct syscore irq_syscore = {
+	.ops = &irq_syscore_ops,
+};
+
 static int __init irq_syscore_init(void)
 {
-	register_syscore_ops(&irq_syscore_ops);
+	register_syscore(&irq_syscore);
 
 	return 0;
 }
diff --git a/arch/arm/mm/cache-b15-rac.c b/arch/arm/mm/cache-b15-rac.c
index 6f63b90f9e1ac..e7807356dfab0 100644
--- a/arch/arm/mm/cache-b15-rac.c
+++ b/arch/arm/mm/cache-b15-rac.c
@@ -256,7 +256,7 @@ static int b15_rac_dead_cpu(unsigned int cpu)
 	return 0;
 }
 
-static int b15_rac_suspend(void)
+static int b15_rac_suspend(void *data)
 {
 	/* Suspend the read-ahead cache oeprations, forcing our cache
 	 * implementation to fallback to the regular ARMv7 calls.
@@ -271,7 +271,7 @@ static int b15_rac_suspend(void)
 	return 0;
 }
 
-static void b15_rac_resume(void)
+static void b15_rac_resume(void *data)
 {
 	/* Coming out of a S3 suspend/resume cycle, the read-ahead cache
 	 * register RAC_CONFIG0_REG will be restored to its default value, make
@@ -282,11 +282,15 @@ static void b15_rac_resume(void)
 	clear_bit(RAC_SUSPENDED, &b15_rac_flags);
 }
 
-static struct syscore_ops b15_rac_syscore_ops = {
+static const struct syscore_ops b15_rac_syscore_ops = {
 	.suspend	= b15_rac_suspend,
 	.resume		= b15_rac_resume,
 };
 
+static struct syscore b15_rac_syscore = {
+	.ops = &b15_rac_syscore_ops,
+};
+
 static int __init b15_rac_init(void)
 {
 	struct device_node *dn, *cpu_dn;
@@ -347,7 +351,7 @@ static int __init b15_rac_init(void)
 	}
 
 	if (IS_ENABLED(CONFIG_PM_SLEEP))
-		register_syscore_ops(&b15_rac_syscore_ops);
+		register_syscore(&b15_rac_syscore);
 
 	spin_lock(&rac_lock);
 	reg = __raw_readl(b15_rac_base + RAC_CONFIG0_REG);
diff --git a/arch/loongarch/kernel/smp.c b/arch/loongarch/kernel/smp.c
index 780abcd86ca32..e3c3ff251dcbd 100644
--- a/arch/loongarch/kernel/smp.c
+++ b/arch/loongarch/kernel/smp.c
@@ -499,28 +499,32 @@ int hibernate_resume_nonboot_cpu_disable(void)
  */
 #ifdef CONFIG_PM
 
-static int loongson_ipi_suspend(void)
+static int loongson_ipi_suspend(void *data)
 {
 	return 0;
 }
 
-static void loongson_ipi_resume(void)
+static void loongson_ipi_resume(void *data)
 {
 	iocsr_write32(0xffffffff, LOONGARCH_IOCSR_IPI_EN);
 }
 
-static struct syscore_ops loongson_ipi_syscore_ops = {
+static const struct syscore_ops loongson_ipi_syscore_ops = {
 	.resume         = loongson_ipi_resume,
 	.suspend        = loongson_ipi_suspend,
 };
 
+static struct syscore loongson_ipi_syscore = {
+	.ops = &loongson_ipi_syscore_ops,
+};
+
 /*
  * Enable boot cpu ipi before enabling nonboot cpus
  * during syscore_resume.
  */
 static int __init ipi_pm_init(void)
 {
-	register_syscore_ops(&loongson_ipi_syscore_ops);
+	register_syscore(&loongson_ipi_syscore);
 	return 0;
 }
 
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index 6a3c890f7bbfe..6c2c2010bbaee 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -982,7 +982,7 @@ u32 au1xxx_dbdma_put_dscr(u32 chanid, au1x_ddma_desc_t *dscr)
 
 static unsigned long alchemy_dbdma_pm_data[NUM_DBDMA_CHANS + 1][6];
 
-static int alchemy_dbdma_suspend(void)
+static int alchemy_dbdma_suspend(void *data)
 {
 	int i;
 	void __iomem *addr;
@@ -1019,7 +1019,7 @@ static int alchemy_dbdma_suspend(void)
 	return 0;
 }
 
-static void alchemy_dbdma_resume(void)
+static void alchemy_dbdma_resume(void *data)
 {
 	int i;
 	void __iomem *addr;
@@ -1044,11 +1044,15 @@ static void alchemy_dbdma_resume(void)
 	}
 }
 
-static struct syscore_ops alchemy_dbdma_syscore_ops = {
+static const struct syscore_ops alchemy_dbdma_syscore_ops = {
 	.suspend	= alchemy_dbdma_suspend,
 	.resume		= alchemy_dbdma_resume,
 };
 
+static struct syscore alchemy_dbdma_syscore = {
+	.ops = &alchemy_dbdma_syscore_ops,
+};
+
 static int __init dbdma_setup(unsigned int irq, dbdev_tab_t *idtable)
 {
 	int ret;
@@ -1071,7 +1075,7 @@ static int __init dbdma_setup(unsigned int irq, dbdev_tab_t *idtable)
 		printk(KERN_ERR "Cannot grab DBDMA interrupt!\n");
 	else {
 		dbdma_initialized = 1;
-		register_syscore_ops(&alchemy_dbdma_syscore_ops);
+		register_syscore(&alchemy_dbdma_syscore);
 	}
 
 	return ret;
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index da9f9220048fc..2403afcd2fb95 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -758,7 +758,7 @@ static inline void alchemy_ic_resume_one(void __iomem *base, unsigned long *d)
 	wmb();
 }
 
-static int alchemy_ic_suspend(void)
+static int alchemy_ic_suspend(void *data)
 {
 	alchemy_ic_suspend_one((void __iomem *)KSEG1ADDR(AU1000_IC0_PHYS_ADDR),
 			       alchemy_gpic_pmdata);
@@ -767,7 +767,7 @@ static int alchemy_ic_suspend(void)
 	return 0;
 }
 
-static void alchemy_ic_resume(void)
+static void alchemy_ic_resume(void *data)
 {
 	alchemy_ic_resume_one((void __iomem *)KSEG1ADDR(AU1000_IC1_PHYS_ADDR),
 			      &alchemy_gpic_pmdata[7]);
@@ -775,7 +775,7 @@ static void alchemy_ic_resume(void)
 			      alchemy_gpic_pmdata);
 }
 
-static int alchemy_gpic_suspend(void)
+static int alchemy_gpic_suspend(void *data)
 {
 	void __iomem *base = (void __iomem *)KSEG1ADDR(AU1300_GPIC_PHYS_ADDR);
 	int i;
@@ -806,7 +806,7 @@ static int alchemy_gpic_suspend(void)
 	return 0;
 }
 
-static void alchemy_gpic_resume(void)
+static void alchemy_gpic_resume(void *data)
 {
 	void __iomem *base = (void __iomem *)KSEG1ADDR(AU1300_GPIC_PHYS_ADDR);
 	int i;
@@ -837,16 +837,24 @@ static void alchemy_gpic_resume(void)
 	wmb();
 }
 
-static struct syscore_ops alchemy_ic_pmops = {
+static const struct syscore_ops alchemy_ic_pmops = {
 	.suspend	= alchemy_ic_suspend,
 	.resume		= alchemy_ic_resume,
 };
 
-static struct syscore_ops alchemy_gpic_pmops = {
+static struct syscore alchemy_ic_pm = {
+	.ops = &alchemy_ic_pmops,
+};
+
+static const struct syscore_ops alchemy_gpic_pmops = {
 	.suspend	= alchemy_gpic_suspend,
 	.resume		= alchemy_gpic_resume,
 };
 
+static struct syscore alchemy_gpic_pm = {
+	.ops = &alchemy_gpic_pmops,
+};
+
 /******************************************************************************/
 
 /* create chained handlers for the 4 IC requests to the MIPS IRQ ctrl */
@@ -880,7 +888,7 @@ static void __init au1000_init_irq(struct alchemy_irqmap *map)
 
 	ic_init((void __iomem *)KSEG1ADDR(AU1000_IC0_PHYS_ADDR));
 	ic_init((void __iomem *)KSEG1ADDR(AU1000_IC1_PHYS_ADDR));
-	register_syscore_ops(&alchemy_ic_pmops);
+	register_syscore(&alchemy_ic_pm);
 	mips_cpu_irq_init();
 
 	/* register all 64 possible IC0+IC1 irq sources as type "none".
@@ -925,7 +933,7 @@ static void __init alchemy_gpic_init_irq(const struct alchemy_irqmap *dints)
 	int i;
 	void __iomem *bank_base;
 
-	register_syscore_ops(&alchemy_gpic_pmops);
+	register_syscore(&alchemy_gpic_pm);
 	mips_cpu_irq_init();
 
 	/* disable & ack all possible interrupt sources */
diff --git a/arch/mips/alchemy/common/usb.c b/arch/mips/alchemy/common/usb.c
index 5d618547ebf01..a55f32bf517cd 100644
--- a/arch/mips/alchemy/common/usb.c
+++ b/arch/mips/alchemy/common/usb.c
@@ -580,22 +580,26 @@ static void alchemy_usb_pm(int susp)
 	}
 }
 
-static int alchemy_usb_suspend(void)
+static int alchemy_usb_suspend(void *data)
 {
 	alchemy_usb_pm(1);
 	return 0;
 }
 
-static void alchemy_usb_resume(void)
+static void alchemy_usb_resume(void *data)
 {
 	alchemy_usb_pm(0);
 }
 
-static struct syscore_ops alchemy_usb_pm_ops = {
+static const struct syscore_ops alchemy_usb_pm_syscore_ops = {
 	.suspend	= alchemy_usb_suspend,
 	.resume		= alchemy_usb_resume,
 };
 
+static struct syscore alchemy_usb_pm_syscore = {
+	.ops = &alchemy_usb_pm_syscore_ops,
+};
+
 static int __init alchemy_usb_init(void)
 {
 	int ret = 0;
@@ -620,7 +624,7 @@ static int __init alchemy_usb_init(void)
 	}
 
 	if (!ret)
-		register_syscore_ops(&alchemy_usb_pm_ops);
+		register_syscore(&alchemy_usb_pm_syscore);
 
 	return ret;
 }
diff --git a/arch/mips/pci/pci-alchemy.c b/arch/mips/pci/pci-alchemy.c
index 58625d1b64658..6bfee0f71803e 100644
--- a/arch/mips/pci/pci-alchemy.c
+++ b/arch/mips/pci/pci-alchemy.c
@@ -304,7 +304,7 @@ static int alchemy_pci_def_idsel(unsigned int devsel, int assert)
 }
 
 /* save PCI controller register contents. */
-static int alchemy_pci_suspend(void)
+static int alchemy_pci_suspend(void *data)
 {
 	struct alchemy_pci_context *ctx = __alchemy_pci_ctx;
 	if (!ctx)
@@ -326,7 +326,7 @@ static int alchemy_pci_suspend(void)
 	return 0;
 }
 
-static void alchemy_pci_resume(void)
+static void alchemy_pci_resume(void *data)
 {
 	struct alchemy_pci_context *ctx = __alchemy_pci_ctx;
 	if (!ctx)
@@ -354,9 +354,13 @@ static void alchemy_pci_resume(void)
 	alchemy_pci_wired_entry(ctx);	/* install it */
 }
 
-static struct syscore_ops alchemy_pci_pmops = {
-	.suspend	= alchemy_pci_suspend,
-	.resume		= alchemy_pci_resume,
+static const struct syscore_ops alchemy_pci_syscore_ops = {
+	.suspend = alchemy_pci_suspend,
+	.resume = alchemy_pci_resume,
+};
+
+static struct syscore alchemy_pci_syscore = {
+	.ops = &alchemy_pci_syscore_ops,
 };
 
 static int alchemy_pci_probe(struct platform_device *pdev)
@@ -478,7 +482,7 @@ static int alchemy_pci_probe(struct platform_device *pdev)
 
 	__alchemy_pci_ctx = ctx;
 	platform_set_drvdata(pdev, ctx);
-	register_syscore_ops(&alchemy_pci_pmops);
+	register_syscore(&alchemy_pci_syscore);
 	register_pci_controller(&ctx->alchemy_pci_ctrl);
 
 	dev_info(&pdev->dev, "PCI controller at %ld MHz\n",
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index dea6f0f258974..bbd3603206806 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -727,7 +727,7 @@ static inline void crash_register_spus(struct list_head *list)
 }
 #endif
 
-static void spu_shutdown(void)
+static void spu_shutdown(void *data)
 {
 	struct spu *spu;
 
@@ -739,10 +739,14 @@ static void spu_shutdown(void)
 	mutex_unlock(&spu_full_list_mutex);
 }
 
-static struct syscore_ops spu_syscore_ops = {
+static const struct syscore_ops spu_syscore_ops = {
 	.shutdown = spu_shutdown,
 };
 
+static struct syscore spu_syscore = {
+	.ops = &spu_syscore_ops,
+};
+
 static int __init init_spu_base(void)
 {
 	int i, ret = 0;
@@ -776,7 +780,7 @@ static int __init init_spu_base(void)
 	crash_register_spus(&spu_full_list);
 	mutex_unlock(&spu_full_list_mutex);
 	spu_add_dev_attr(&dev_attr_stat);
-	register_syscore_ops(&spu_syscore_ops);
+	register_syscore(&spu_syscore);
 
 	spu_init_affinity();
 
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 2202bf77c7a31..582ff2aafc5d8 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -599,7 +599,7 @@ static int pmacpic_find_viaint(void)
 	return viaint;
 }
 
-static int pmacpic_suspend(void)
+static int pmacpic_suspend(void *data)
 {
 	int viaint = pmacpic_find_viaint();
 
@@ -620,7 +620,7 @@ static int pmacpic_suspend(void)
         return 0;
 }
 
-static void pmacpic_resume(void)
+static void pmacpic_resume(void *data)
 {
 	int i;
 
@@ -633,15 +633,19 @@ static void pmacpic_resume(void)
 			pmac_unmask_irq(irq_get_irq_data(i));
 }
 
-static struct syscore_ops pmacpic_syscore_ops = {
+static const struct syscore_ops pmacpic_syscore_ops = {
 	.suspend	= pmacpic_suspend,
 	.resume		= pmacpic_resume,
 };
 
+static struct syscore pmacpic_syscore = {
+	.ops = &pmacpic_syscore_ops,
+};
+
 static int __init init_pmacpic_syscore(void)
 {
 	if (pmac_irq_hw[0])
-		register_syscore_ops(&pmacpic_syscore_ops);
+		register_syscore(&pmacpic_syscore);
 	return 0;
 }
 
diff --git a/arch/powerpc/sysdev/fsl_lbc.c b/arch/powerpc/sysdev/fsl_lbc.c
index 217cea150987d..7ed07232a69a4 100644
--- a/arch/powerpc/sysdev/fsl_lbc.c
+++ b/arch/powerpc/sysdev/fsl_lbc.c
@@ -350,7 +350,7 @@ static int fsl_lbc_ctrl_probe(struct platform_device *dev)
 #ifdef CONFIG_SUSPEND
 
 /* save lbc registers */
-static int fsl_lbc_syscore_suspend(void)
+static int fsl_lbc_syscore_suspend(void *data)
 {
 	struct fsl_lbc_ctrl *ctrl;
 	struct fsl_lbc_regs __iomem *lbc;
@@ -374,7 +374,7 @@ static int fsl_lbc_syscore_suspend(void)
 }
 
 /* restore lbc registers */
-static void fsl_lbc_syscore_resume(void)
+static void fsl_lbc_syscore_resume(void *data)
 {
 	struct fsl_lbc_ctrl *ctrl;
 	struct fsl_lbc_regs __iomem *lbc;
@@ -408,10 +408,14 @@ static const struct of_device_id fsl_lbc_match[] = {
 };
 
 #ifdef CONFIG_SUSPEND
-static struct syscore_ops lbc_syscore_pm_ops = {
+static const struct syscore_ops lbc_syscore_pm_ops = {
 	.suspend = fsl_lbc_syscore_suspend,
 	.resume = fsl_lbc_syscore_resume,
 };
+
+static struct syscore lbc_syscore_pm = {
+	.ops = &lbc_syscore_pm_ops,
+};
 #endif
 
 static struct platform_driver fsl_lbc_ctrl_driver = {
@@ -425,7 +429,7 @@ static struct platform_driver fsl_lbc_ctrl_driver = {
 static int __init fsl_lbc_init(void)
 {
 #ifdef CONFIG_SUSPEND
-	register_syscore_ops(&lbc_syscore_pm_ops);
+	register_syscore(&lbc_syscore_pm);
 #endif
 	return platform_driver_register(&fsl_lbc_ctrl_driver);
 }
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index ef7707ea0db7b..4e501654cb41b 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -1258,7 +1258,7 @@ static void fsl_pci_syscore_do_suspend(struct pci_controller *hose)
 	send_pme_turnoff_message(hose);
 }
 
-static int fsl_pci_syscore_suspend(void)
+static int fsl_pci_syscore_suspend(void *data)
 {
 	struct pci_controller *hose, *tmp;
 
@@ -1291,7 +1291,7 @@ static void fsl_pci_syscore_do_resume(struct pci_controller *hose)
 	setup_pci_atmu(hose);
 }
 
-static void fsl_pci_syscore_resume(void)
+static void fsl_pci_syscore_resume(void *data)
 {
 	struct pci_controller *hose, *tmp;
 
@@ -1299,10 +1299,14 @@ static void fsl_pci_syscore_resume(void)
 		fsl_pci_syscore_do_resume(hose);
 }
 
-static struct syscore_ops pci_syscore_pm_ops = {
+static const struct syscore_ops pci_syscore_pm_ops = {
 	.suspend = fsl_pci_syscore_suspend,
 	.resume = fsl_pci_syscore_resume,
 };
+
+static struct syscore pci_syscore_pm = {
+	.ops = &pci_syscore_pm_ops,
+};
 #endif
 
 void fsl_pcibios_fixup_phb(struct pci_controller *phb)
@@ -1359,7 +1363,7 @@ static struct platform_driver fsl_pci_driver = {
 static int __init fsl_pci_init(void)
 {
 #ifdef CONFIG_PM_SLEEP
-	register_syscore_ops(&pci_syscore_pm_ops);
+	register_syscore(&pci_syscore_pm);
 #endif
 	return platform_driver_register(&fsl_pci_driver);
 }
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 5f69e2d50f268..d7b2db9926f68 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -817,7 +817,7 @@ static struct {
 	u32 sercr;
 } ipic_saved_state;
 
-static int ipic_suspend(void)
+static int ipic_suspend(void *data)
 {
 	struct ipic *ipic = primary_ipic;
 
@@ -848,7 +848,7 @@ static int ipic_suspend(void)
 	return 0;
 }
 
-static void ipic_resume(void)
+static void ipic_resume(void *data)
 {
 	struct ipic *ipic = primary_ipic;
 
@@ -870,18 +870,22 @@ static void ipic_resume(void)
 #define ipic_resume NULL
 #endif
 
-static struct syscore_ops ipic_syscore_ops = {
+static const struct syscore_ops ipic_syscore_ops = {
 	.suspend = ipic_suspend,
 	.resume = ipic_resume,
 };
 
+static struct syscore ipic_syscore = {
+	.ops = &ipic_syscore_ops,
+};
+
 static int __init init_ipic_syscore(void)
 {
 	if (!primary_ipic || !primary_ipic->regs)
 		return -ENODEV;
 
 	printk(KERN_DEBUG "Registering ipic system core operations\n");
-	register_syscore_ops(&ipic_syscore_ops);
+	register_syscore(&ipic_syscore);
 
 	return 0;
 }
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index d94cf36b0f658..479dca1d7d44f 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1943,7 +1943,7 @@ static void mpic_suspend_one(struct mpic *mpic)
 	}
 }
 
-static int mpic_suspend(void)
+static int mpic_suspend(void *data)
 {
 	struct mpic *mpic = mpics;
 
@@ -1985,7 +1985,7 @@ static void mpic_resume_one(struct mpic *mpic)
 	} /* end for loop */
 }
 
-static void mpic_resume(void)
+static void mpic_resume(void *data)
 {
 	struct mpic *mpic = mpics;
 
@@ -1995,19 +1995,23 @@ static void mpic_resume(void)
 	}
 }
 
-static struct syscore_ops mpic_syscore_ops = {
+static const struct syscore_ops mpic_syscore_ops = {
 	.resume = mpic_resume,
 	.suspend = mpic_suspend,
 };
 
+static struct syscore mpic_syscore = {
+	.ops = &mpic_syscore_ops,
+};
+
 static int mpic_init_sys(void)
 {
 	int rc;
 
-	register_syscore_ops(&mpic_syscore_ops);
+	register_syscore(&mpic_syscore);
 	rc = subsys_system_register(&mpic_subsys, NULL);
 	if (rc) {
-		unregister_syscore_ops(&mpic_syscore_ops);
+		unregister_syscore(&mpic_syscore);
 		pr_err("mpic: Failed to register subsystem!\n");
 		return rc;
 	}
diff --git a/arch/powerpc/sysdev/mpic_timer.c b/arch/powerpc/sysdev/mpic_timer.c
index 7166e2e0baaf6..60f5b3934b511 100644
--- a/arch/powerpc/sysdev/mpic_timer.c
+++ b/arch/powerpc/sysdev/mpic_timer.c
@@ -519,7 +519,7 @@ static void __init timer_group_init(struct device_node *np)
 	kfree(priv);
 }
 
-static void mpic_timer_resume(void)
+static void mpic_timer_resume(void *data)
 {
 	struct timer_group_priv *priv;
 
@@ -535,10 +535,14 @@ static const struct of_device_id mpic_timer_ids[] = {
 	{},
 };
 
-static struct syscore_ops mpic_timer_syscore_ops = {
+static const struct syscore_ops mpic_timer_syscore_ops = {
 	.resume = mpic_timer_resume,
 };
 
+static struct syscore mpic_timer_syscore = {
+	.ops = &mpic_timer_syscore_ops,
+};
+
 static int __init mpic_timer_init(void)
 {
 	struct device_node *np = NULL;
@@ -546,7 +550,7 @@ static int __init mpic_timer_init(void)
 	for_each_matching_node(np, mpic_timer_ids)
 		timer_group_init(np);
 
-	register_syscore_ops(&mpic_timer_syscore_ops);
+	register_syscore(&mpic_timer_syscore);
 
 	if (list_empty(&timer_group_list))
 		return -ENODEV;
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index 68eb7cc6e5643..482eec50f404e 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -857,7 +857,7 @@ static int __init pmb_debugfs_init(void)
 subsys_initcall(pmb_debugfs_init);
 
 #ifdef CONFIG_PM
-static void pmb_syscore_resume(void)
+static void pmb_syscore_resume(void *data)
 {
 	struct pmb_entry *pmbe;
 	int i;
@@ -874,13 +874,17 @@ static void pmb_syscore_resume(void)
 	read_unlock(&pmb_rwlock);
 }
 
-static struct syscore_ops pmb_syscore_ops = {
+static const struct syscore_ops pmb_syscore_ops = {
 	.resume = pmb_syscore_resume,
 };
 
+static struct syscore pmb_syscore = {
+	.ops = &pmb_syscore_ops,
+};
+
 static int __init pmb_sysdev_init(void)
 {
-	register_syscore_ops(&pmb_syscore_ops);
+	register_syscore(&pmb_syscore);
 	return 0;
 }
 subsys_initcall(pmb_sysdev_init);
diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c
index 1022d1dcbe447..5dde66bd94bdd 100644
--- a/arch/x86/events/amd/ibs.c
+++ b/arch/x86/events/amd/ibs.c
@@ -1488,26 +1488,30 @@ static int x86_pmu_amd_ibs_starting_cpu(unsigned int cpu)
 
 #ifdef CONFIG_PM
 
-static int perf_ibs_suspend(void)
+static int perf_ibs_suspend(void *data)
 {
 	clear_APIC_ibs();
 	return 0;
 }
 
-static void perf_ibs_resume(void)
+static void perf_ibs_resume(void *data)
 {
 	ibs_eilvt_setup();
 	setup_APIC_ibs();
 }
 
-static struct syscore_ops perf_ibs_syscore_ops = {
+static const struct syscore_ops perf_ibs_syscore_ops = {
 	.resume		= perf_ibs_resume,
 	.suspend	= perf_ibs_suspend,
 };
 
+static struct syscore perf_ibs_syscore = {
+	.ops = &perf_ibs_syscore_ops,
+};
+
 static void perf_ibs_pm_init(void)
 {
-	register_syscore_ops(&perf_ibs_syscore_ops);
+	register_syscore(&perf_ibs_syscore);
 }
 
 #else
diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
index 239f612816e6d..5d7e5b53e33ea 100644
--- a/arch/x86/hyperv/hv_init.c
+++ b/arch/x86/hyperv/hv_init.c
@@ -316,7 +316,7 @@ static int __init hv_pci_init(void)
 	return 1;
 }
 
-static int hv_suspend(void)
+static int hv_suspend(void *data)
 {
 	union hv_x64_msr_hypercall_contents hypercall_msr;
 	int ret;
@@ -343,7 +343,7 @@ static int hv_suspend(void)
 	return ret;
 }
 
-static void hv_resume(void)
+static void hv_resume(void *data)
 {
 	union hv_x64_msr_hypercall_contents hypercall_msr;
 	int ret;
@@ -370,11 +370,15 @@ static void hv_resume(void)
 }
 
 /* Note: when the ops are called, only CPU0 is online and IRQs are disabled. */
-static struct syscore_ops hv_syscore_ops = {
+static const struct syscore_ops hv_syscore_ops = {
 	.suspend	= hv_suspend,
 	.resume		= hv_resume,
 };
 
+static struct syscore hv_syscore = {
+	.ops = &hv_syscore_ops,
+};
+
 static void (* __initdata old_setup_percpu_clockev)(void);
 
 static void __init hv_stimer_setup_percpu_clockev(void)
@@ -604,7 +608,7 @@ void __init hyperv_init(void)
 
 	x86_init.pci.arch_init = hv_pci_init;
 
-	register_syscore_ops(&hv_syscore_ops);
+	register_syscore(&hv_syscore);
 
 	if (cpuid_ebx(HYPERV_CPUID_FEATURES) & HV_ACCESS_PARTITION_ID)
 		hv_get_partition_id();
diff --git a/arch/x86/kernel/amd_gart_64.c b/arch/x86/kernel/amd_gart_64.c
index c884deca839b2..30a1916b0c4e5 100644
--- a/arch/x86/kernel/amd_gart_64.c
+++ b/arch/x86/kernel/amd_gart_64.c
@@ -591,7 +591,7 @@ static void gart_fixup_northbridges(void)
 	}
 }
 
-static void gart_resume(void)
+static void gart_resume(void *data)
 {
 	pr_info("PCI-DMA: Resuming GART IOMMU\n");
 
@@ -600,11 +600,15 @@ static void gart_resume(void)
 	enable_gart_translations();
 }
 
-static struct syscore_ops gart_syscore_ops = {
+static const struct syscore_ops gart_syscore_ops = {
 	.resume		= gart_resume,
 
 };
 
+static struct syscore gart_syscore = {
+	.ops = &gart_syscore_ops,
+};
+
 /*
  * Private Northbridge GATT initialization in case we cannot use the
  * AGP driver for some reason.
@@ -650,7 +654,7 @@ static __init int init_amd_gatt(struct agp_kern_info *info)
 
 	agp_gatt_table = gatt;
 
-	register_syscore_ops(&gart_syscore_ops);
+	register_syscore(&gart_syscore);
 
 	flush_gart();
 
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 21dc37cca20ea..65c521d74ab84 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -2379,7 +2379,7 @@ static struct {
 	unsigned int apic_cmci;
 } apic_pm_state;
 
-static int lapic_suspend(void)
+static int lapic_suspend(void *data)
 {
 	unsigned long flags;
 	int maxlvt;
@@ -2427,7 +2427,7 @@ static int lapic_suspend(void)
 	return 0;
 }
 
-static void lapic_resume(void)
+static void lapic_resume(void *data)
 {
 	unsigned int l, h;
 	unsigned long flags;
@@ -2507,11 +2507,15 @@ static void lapic_resume(void)
  * are needed on every CPU up until machine_halt/restart/poweroff.
  */
 
-static struct syscore_ops lapic_syscore_ops = {
+static const struct syscore_ops lapic_syscore_ops = {
 	.resume		= lapic_resume,
 	.suspend	= lapic_suspend,
 };
 
+static struct syscore lapic_syscore = {
+	.ops = &lapic_syscore_ops,
+};
+
 static void apic_pm_activate(void)
 {
 	apic_pm_state.active = 1;
@@ -2521,7 +2525,7 @@ static int __init init_lapic_sysfs(void)
 {
 	/* XXX: remove suspend/resume procs if !apic_pm_state.active? */
 	if (boot_cpu_has(X86_FEATURE_APIC))
-		register_syscore_ops(&lapic_syscore_ops);
+		register_syscore(&lapic_syscore);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 1029ea4ac8ba3..2f478d8ef5624 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2308,7 +2308,12 @@ static void resume_ioapic_id(int ioapic_idx)
 	}
 }
 
-static void ioapic_resume(void)
+static int ioapic_suspend(void *data)
+{
+	return save_ioapic_entries();
+}
+
+static void ioapic_resume(void *data)
 {
 	int ioapic_idx;
 
@@ -2318,14 +2323,18 @@ static void ioapic_resume(void)
 	restore_ioapic_entries();
 }
 
-static struct syscore_ops ioapic_syscore_ops = {
-	.suspend	= save_ioapic_entries,
+static const struct syscore_ops ioapic_syscore_ops = {
+	.suspend	= ioapic_suspend,
 	.resume		= ioapic_resume,
 };
 
+static struct syscore ioapic_syscore = {
+	.ops = &ioapic_syscore_ops,
+};
+
 static int __init ioapic_init_ops(void)
 {
-	register_syscore_ops(&ioapic_syscore_ops);
+	register_syscore(&ioapic_syscore);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/cpu/aperfmperf.c b/arch/x86/kernel/cpu/aperfmperf.c
index f642de2ebdac8..e7c7b42459df9 100644
--- a/arch/x86/kernel/cpu/aperfmperf.c
+++ b/arch/x86/kernel/cpu/aperfmperf.c
@@ -36,7 +36,7 @@ static DEFINE_PER_CPU_SHARED_ALIGNED(struct aperfmperf, cpu_samples) = {
 	.seq = SEQCNT_ZERO(cpu_samples.seq)
 };
 
-static void init_counter_refs(void)
+static void init_counter_refs(void *data)
 {
 	u64 aperf, mperf;
 
@@ -288,16 +288,20 @@ static bool __init intel_set_max_freq_ratio(void)
 }
 
 #ifdef CONFIG_PM_SLEEP
-static struct syscore_ops freq_invariance_syscore_ops = {
+static const struct syscore_ops freq_invariance_syscore_ops = {
 	.resume = init_counter_refs,
 };
 
-static void register_freq_invariance_syscore_ops(void)
+static struct syscore freq_invariance_syscore = {
+	.ops = &freq_invariance_syscore_ops,
+};
+
+static void register_freq_invariance_syscore(void)
 {
-	register_syscore_ops(&freq_invariance_syscore_ops);
+	register_syscore(&freq_invariance_syscore);
 }
 #else
-static inline void register_freq_invariance_syscore_ops(void) {}
+static inline void register_freq_invariance_syscore(void) {}
 #endif
 
 static void freq_invariance_enable(void)
@@ -307,7 +311,7 @@ static void freq_invariance_enable(void)
 		return;
 	}
 	static_branch_enable_cpuslocked(&arch_scale_freq_key);
-	register_freq_invariance_syscore_ops();
+	register_freq_invariance_syscore();
 	pr_info("Estimated ratio of average max frequency by base frequency (times 1024): %llu\n", arch_max_freq_ratio);
 }
 
@@ -534,7 +538,7 @@ static int __init bp_init_aperfmperf(void)
 	if (!cpu_feature_enabled(X86_FEATURE_APERFMPERF))
 		return 0;
 
-	init_counter_refs();
+	init_counter_refs(NULL);
 	bp_init_freq_invariance();
 	return 0;
 }
@@ -543,5 +547,5 @@ early_initcall(bp_init_aperfmperf);
 void ap_init_aperfmperf(void)
 {
 	if (cpu_feature_enabled(X86_FEATURE_APERFMPERF))
-		init_counter_refs();
+		init_counter_refs(NULL);
 }
diff --git a/arch/x86/kernel/cpu/intel_epb.c b/arch/x86/kernel/cpu/intel_epb.c
index 30b1d63b97f3a..91b9020d08b6a 100644
--- a/arch/x86/kernel/cpu/intel_epb.c
+++ b/arch/x86/kernel/cpu/intel_epb.c
@@ -75,7 +75,7 @@ static u8 energ_perf_values[] = {
 	[EPB_INDEX_POWERSAVE] = ENERGY_PERF_BIAS_POWERSAVE,
 };
 
-static int intel_epb_save(void)
+static int intel_epb_save(void *data)
 {
 	u64 epb;
 
@@ -89,7 +89,7 @@ static int intel_epb_save(void)
 	return 0;
 }
 
-static void intel_epb_restore(void)
+static void intel_epb_restore(void *data)
 {
 	u64 val = this_cpu_read(saved_epb);
 	u64 epb;
@@ -114,11 +114,15 @@ static void intel_epb_restore(void)
 	wrmsrl(MSR_IA32_ENERGY_PERF_BIAS, (epb & ~EPB_MASK) | val);
 }
 
-static struct syscore_ops intel_epb_syscore_ops = {
+static const struct syscore_ops intel_epb_syscore_ops = {
 	.suspend = intel_epb_save,
 	.resume = intel_epb_restore,
 };
 
+static struct syscore intel_epb_syscore = {
+	.ops = &intel_epb_syscore_ops,
+};
+
 static const char * const energy_perf_strings[] = {
 	[EPB_INDEX_PERFORMANCE] = "performance",
 	[EPB_INDEX_BALANCE_PERFORMANCE] = "balance-performance",
@@ -185,7 +189,7 @@ static int intel_epb_online(unsigned int cpu)
 {
 	struct device *cpu_dev = get_cpu_device(cpu);
 
-	intel_epb_restore();
+	intel_epb_restore(NULL);
 	if (!cpuhp_tasks_frozen)
 		sysfs_merge_group(&cpu_dev->kobj, &intel_epb_attr_group);
 
@@ -199,7 +203,7 @@ static int intel_epb_offline(unsigned int cpu)
 	if (!cpuhp_tasks_frozen)
 		sysfs_unmerge_group(&cpu_dev->kobj, &intel_epb_attr_group);
 
-	intel_epb_save();
+	intel_epb_save(NULL);
 	return 0;
 }
 
@@ -230,7 +234,7 @@ static __init int intel_epb_init(void)
 	if (ret < 0)
 		goto err_out_online;
 
-	register_syscore_ops(&intel_epb_syscore_ops);
+	register_syscore(&intel_epb_syscore);
 	return 0;
 
 err_out_online:
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 7be30b3775785..6e6cb9dec9a74 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -2396,13 +2396,13 @@ static void vendor_disable_error_reporting(void)
 	mce_disable_error_reporting();
 }
 
-static int mce_syscore_suspend(void)
+static int mce_syscore_suspend(void *data)
 {
 	vendor_disable_error_reporting();
 	return 0;
 }
 
-static void mce_syscore_shutdown(void)
+static void mce_syscore_shutdown(void *data)
 {
 	vendor_disable_error_reporting();
 }
@@ -2412,7 +2412,7 @@ static void mce_syscore_shutdown(void)
  * Only one CPU is active at this time, the others get re-added later using
  * CPU hotplug:
  */
-static void mce_syscore_resume(void)
+static void mce_syscore_resume(void *data)
 {
 	__mcheck_cpu_init_generic();
 	__mcheck_cpu_init_vendor(raw_cpu_ptr(&cpu_info));
@@ -2420,12 +2420,16 @@ static void mce_syscore_resume(void)
 	cr4_set_bits(X86_CR4_MCE);
 }
 
-static struct syscore_ops mce_syscore_ops = {
+static const struct syscore_ops mce_syscore_ops = {
 	.suspend	= mce_syscore_suspend,
 	.shutdown	= mce_syscore_shutdown,
 	.resume		= mce_syscore_resume,
 };
 
+static struct syscore mce_syscore = {
+	.ops = &mce_syscore_ops,
+};
+
 /*
  * mce_device: Sysfs support
  */
@@ -2826,7 +2830,7 @@ static __init int mcheck_init_device(void)
 	if (err < 0)
 		goto err_out_online;
 
-	register_syscore_ops(&mce_syscore_ops);
+	register_syscore(&mce_syscore);
 
 	return 0;
 
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index e8021d3e58824..7809380e81a99 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -774,8 +774,17 @@ void microcode_bsp_resume(void)
 		reload_early_microcode(cpu);
 }
 
-static struct syscore_ops mc_syscore_ops = {
-	.resume	= microcode_bsp_resume,
+static void microcode_bsp_syscore_resume(void *data)
+{
+	microcode_bsp_resume();
+}
+
+static const struct syscore_ops mc_syscore_ops = {
+	.resume	= microcode_bsp_syscore_resume,
+};
+
+static struct syscore mc_syscore = {
+	.ops = &mc_syscore_ops,
 };
 
 static int mc_cpu_online(unsigned int cpu)
@@ -854,7 +863,7 @@ static int __init microcode_init(void)
 		}
 	}
 
-	register_syscore_ops(&mc_syscore_ops);
+	register_syscore(&mc_syscore);
 	cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "x86/microcode:online",
 			  mc_cpu_online, mc_cpu_down_prep);
 
diff --git a/arch/x86/kernel/cpu/mtrr/legacy.c b/arch/x86/kernel/cpu/mtrr/legacy.c
index d25882fcf181d..2415ffaaf02c0 100644
--- a/arch/x86/kernel/cpu/mtrr/legacy.c
+++ b/arch/x86/kernel/cpu/mtrr/legacy.c
@@ -41,7 +41,7 @@ struct mtrr_value {
 
 static struct mtrr_value *mtrr_value;
 
-static int mtrr_save(void)
+static int mtrr_save(void *data)
 {
 	int i;
 
@@ -56,7 +56,7 @@ static int mtrr_save(void)
 	return 0;
 }
 
-static void mtrr_restore(void)
+static void mtrr_restore(void *data)
 {
 	int i;
 
@@ -69,11 +69,15 @@ static void mtrr_restore(void)
 	}
 }
 
-static struct syscore_ops mtrr_syscore_ops = {
+static const struct syscore_ops mtrr_syscore_ops = {
 	.suspend	= mtrr_save,
 	.resume		= mtrr_restore,
 };
 
+static struct syscore mtrr_syscore = {
+	.ops = &mtrr_syscore_ops,
+};
+
 void mtrr_register_syscore(void)
 {
 	mtrr_value = kcalloc(num_var_ranges, sizeof(*mtrr_value), GFP_KERNEL);
@@ -86,5 +90,5 @@ void mtrr_register_syscore(void)
 	 * TBD: is there any system with such CPU which supports
 	 * suspend/resume? If no, we should remove the code.
 	 */
-	register_syscore_ops(&mtrr_syscore_ops);
+	register_syscore(&mtrr_syscore);
 }
diff --git a/arch/x86/kernel/cpu/umwait.c b/arch/x86/kernel/cpu/umwait.c
index 2293efd6ffa69..66ed3802bd137 100644
--- a/arch/x86/kernel/cpu/umwait.c
+++ b/arch/x86/kernel/cpu/umwait.c
@@ -86,15 +86,19 @@ static int umwait_cpu_offline(unsigned int cpu)
  * trust the firmware nor does it matter if the same value is written
  * again.
  */
-static void umwait_syscore_resume(void)
+static void umwait_syscore_resume(void *data)
 {
 	umwait_update_control_msr(NULL);
 }
 
-static struct syscore_ops umwait_syscore_ops = {
+static const struct syscore_ops umwait_syscore_ops = {
 	.resume	= umwait_syscore_resume,
 };
 
+static struct syscore umwait_syscore = {
+	.ops = &umwait_syscore_ops,
+};
+
 /* sysfs interface */
 
 /*
@@ -226,7 +230,7 @@ static int __init umwait_init(void)
 		return ret;
 	}
 
-	register_syscore_ops(&umwait_syscore_ops);
+	register_syscore(&umwait_syscore);
 
 	/*
 	 * Add umwait control interface. Ignore failure, so at least the
diff --git a/arch/x86/kernel/i8237.c b/arch/x86/kernel/i8237.c
index 2cd124ad9380c..896d46b442848 100644
--- a/arch/x86/kernel/i8237.c
+++ b/arch/x86/kernel/i8237.c
@@ -19,7 +19,7 @@
  * in asm/dma.h.
  */
 
-static void i8237A_resume(void)
+static void i8237A_resume(void *data)
 {
 	unsigned long flags;
 	int i;
@@ -41,10 +41,14 @@ static void i8237A_resume(void)
 	release_dma_lock(flags);
 }
 
-static struct syscore_ops i8237_syscore_ops = {
+static const struct syscore_ops i8237_syscore_ops = {
 	.resume		= i8237A_resume,
 };
 
+static struct syscore i8237_syscore = {
+	.ops = &i8237_syscore_ops,
+};
+
 static int __init i8237A_init_ops(void)
 {
 	/*
@@ -70,7 +74,7 @@ static int __init i8237A_init_ops(void)
 	if (x86_pnpbios_disabled() && dmi_get_bios_year() >= 2017)
 		return -ENODEV;
 
-	register_syscore_ops(&i8237_syscore_ops);
+	register_syscore(&i8237_syscore);
 	return 0;
 }
 device_initcall(i8237A_init_ops);
diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
index c20d1832c4812..73200f492e11c 100644
--- a/arch/x86/kernel/i8259.c
+++ b/arch/x86/kernel/i8259.c
@@ -246,19 +246,19 @@ static void save_ELCR(char *trigger)
 	trigger[1] = inb(PIC_ELCR2) & 0xDE;
 }
 
-static void i8259A_resume(void)
+static void i8259A_resume(void *data)
 {
 	init_8259A(i8259A_auto_eoi);
 	restore_ELCR(irq_trigger);
 }
 
-static int i8259A_suspend(void)
+static int i8259A_suspend(void *data)
 {
 	save_ELCR(irq_trigger);
 	return 0;
 }
 
-static void i8259A_shutdown(void)
+static void i8259A_shutdown(void *data)
 {
 	/* Put the i8259A into a quiescent state that
 	 * the kernel initialization code can get it
@@ -268,12 +268,16 @@ static void i8259A_shutdown(void)
 	outb(0xff, PIC_SLAVE_IMR);	/* mask all of 8259A-2 */
 }
 
-static struct syscore_ops i8259_syscore_ops = {
+static const struct syscore_ops i8259_syscore_ops = {
 	.suspend = i8259A_suspend,
 	.resume = i8259A_resume,
 	.shutdown = i8259A_shutdown,
 };
 
+static struct syscore i8259_syscore = {
+	.ops = &i8259_syscore_ops,
+};
+
 static void mask_8259A(void)
 {
 	unsigned long flags;
@@ -443,7 +447,7 @@ EXPORT_SYMBOL(legacy_pic);
 static int __init i8259A_init_ops(void)
 {
 	if (legacy_pic == &default_legacy_pic)
-		register_syscore_ops(&i8259_syscore_ops);
+		register_syscore(&i8259_syscore);
 
 	return 0;
 }
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 46887d60348ef..a4c78026eea0b 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -720,7 +720,7 @@ static int kvm_cpu_down_prepare(unsigned int cpu)
 
 #endif
 
-static int kvm_suspend(void)
+static int kvm_suspend(void *data)
 {
 	u64 val = 0;
 
@@ -734,7 +734,7 @@ static int kvm_suspend(void)
 	return 0;
 }
 
-static void kvm_resume(void)
+static void kvm_resume(void *data)
 {
 	kvm_cpu_online(raw_smp_processor_id());
 
@@ -744,11 +744,15 @@ static void kvm_resume(void)
 #endif
 }
 
-static struct syscore_ops kvm_syscore_ops = {
+static const struct syscore_ops kvm_syscore_ops = {
 	.suspend	= kvm_suspend,
 	.resume		= kvm_resume,
 };
 
+static struct syscore kvm_syscore = {
+	.ops = &kvm_syscore_ops,
+};
+
 static void kvm_pv_guest_cpu_reboot(void *unused)
 {
 	kvm_guest_cpu_offline(true);
@@ -859,7 +863,7 @@ static void __init kvm_guest_init(void)
 	machine_ops.crash_shutdown = kvm_crash_shutdown;
 #endif
 
-	register_syscore_ops(&kvm_syscore_ops);
+	register_syscore(&kvm_syscore);
 
 	/*
 	 * Hard lockup detection is enabled by default. Disable it, as guests
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index b727db968f334..ce022799e1b33 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -761,7 +761,7 @@ static int acpi_pci_link_resume(struct acpi_pci_link *link)
 	return 0;
 }
 
-static void irqrouter_resume(void)
+static void irqrouter_resume(void *data)
 {
 	struct acpi_pci_link *link;
 
@@ -888,10 +888,14 @@ static int __init acpi_irq_balance_set(char *str)
 
 __setup("acpi_irq_balance", acpi_irq_balance_set);
 
-static struct syscore_ops irqrouter_syscore_ops = {
+static const struct syscore_ops irqrouter_syscore_ops = {
 	.resume = irqrouter_resume,
 };
 
+static struct syscore irqrouter_syscore = {
+	.ops = &irqrouter_syscore_ops,
+};
+
 void __init acpi_pci_link_init(void)
 {
 	if (acpi_noirq)
@@ -904,6 +908,6 @@ void __init acpi_pci_link_init(void)
 		else
 			acpi_irq_balance = 0;
 	}
-	register_syscore_ops(&irqrouter_syscore_ops);
+	register_syscore(&irqrouter_syscore);
 	acpi_scan_add_handler(&pci_link_handler);
 }
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 0b7fa4a8c379c..1b9579bb97c27 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -892,13 +892,13 @@ bool acpi_s2idle_wakeup(void)
 #ifdef CONFIG_PM_SLEEP
 static u32 saved_bm_rld;
 
-static int  acpi_save_bm_rld(void)
+static int  acpi_save_bm_rld(void *data)
 {
 	acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_RLD, &saved_bm_rld);
 	return 0;
 }
 
-static void  acpi_restore_bm_rld(void)
+static void  acpi_restore_bm_rld(void *data)
 {
 	u32 resumed_bm_rld = 0;
 
@@ -909,14 +909,18 @@ static void  acpi_restore_bm_rld(void)
 	acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_RLD, saved_bm_rld);
 }
 
-static struct syscore_ops acpi_sleep_syscore_ops = {
+static const struct syscore_ops acpi_sleep_syscore_ops = {
 	.suspend = acpi_save_bm_rld,
 	.resume = acpi_restore_bm_rld,
 };
 
+static struct syscore acpi_sleep_syscore = {
+	.ops = &acpi_sleep_syscore_ops,
+};
+
 static void acpi_sleep_syscore_init(void)
 {
-	register_syscore_ops(&acpi_sleep_syscore_ops);
+	register_syscore(&acpi_sleep_syscore);
 }
 #else
 static inline void acpi_sleep_syscore_init(void) {}
diff --git a/drivers/base/firmware_loader/main.c b/drivers/base/firmware_loader/main.c
index b4c4a53295707..b894687b059ca 100644
--- a/drivers/base/firmware_loader/main.c
+++ b/drivers/base/firmware_loader/main.c
@@ -1621,16 +1621,20 @@ static int fw_pm_notify(struct notifier_block *notify_block,
 }
 
 /* stop caching firmware once syscore_suspend is reached */
-static int fw_suspend(void)
+static int fw_suspend(void *data)
 {
 	fw_cache.state = FW_LOADER_NO_CACHE;
 	return 0;
 }
 
-static struct syscore_ops fw_syscore_ops = {
+static const struct syscore_ops fw_syscore_ops = {
 	.suspend = fw_suspend,
 };
 
+static struct syscore fw_syscore = {
+	.ops = &fw_syscore_ops,
+};
+
 static int __init register_fw_pm_ops(void)
 {
 	int ret;
@@ -1646,14 +1650,14 @@ static int __init register_fw_pm_ops(void)
 	if (ret)
 		return ret;
 
-	register_syscore_ops(&fw_syscore_ops);
+	register_syscore(&fw_syscore);
 
 	return ret;
 }
 
 static inline void unregister_fw_pm_ops(void)
 {
-	unregister_syscore_ops(&fw_syscore_ops);
+	unregister_syscore(&fw_syscore);
 	unregister_pm_notifier(&fw_cache.pm_notify);
 }
 #else
diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
index 13db1f78d2ce9..483adb796654f 100644
--- a/drivers/base/syscore.c
+++ b/drivers/base/syscore.c
@@ -11,32 +11,32 @@
 #include <linux/suspend.h>
 #include <trace/events/power.h>
 
-static LIST_HEAD(syscore_ops_list);
-static DEFINE_MUTEX(syscore_ops_lock);
+static LIST_HEAD(syscore_list);
+static DEFINE_MUTEX(syscore_lock);
 
 /**
- * register_syscore_ops - Register a set of system core operations.
- * @ops: System core operations to register.
+ * register_syscore - Register a set of system core operations.
+ * @syscore: System core operations to register.
  */
-void register_syscore_ops(struct syscore_ops *ops)
+void register_syscore(struct syscore *syscore)
 {
-	mutex_lock(&syscore_ops_lock);
-	list_add_tail(&ops->node, &syscore_ops_list);
-	mutex_unlock(&syscore_ops_lock);
+	mutex_lock(&syscore_lock);
+	list_add_tail(&syscore->node, &syscore_list);
+	mutex_unlock(&syscore_lock);
 }
-EXPORT_SYMBOL_GPL(register_syscore_ops);
+EXPORT_SYMBOL_GPL(register_syscore);
 
 /**
- * unregister_syscore_ops - Unregister a set of system core operations.
- * @ops: System core operations to unregister.
+ * unregister_syscore - Unregister a set of system core operations.
+ * @syscore: System core operations to unregister.
  */
-void unregister_syscore_ops(struct syscore_ops *ops)
+void unregister_syscore(struct syscore *syscore)
 {
-	mutex_lock(&syscore_ops_lock);
-	list_del(&ops->node);
-	mutex_unlock(&syscore_ops_lock);
+	mutex_lock(&syscore_lock);
+	list_del(&syscore->node);
+	mutex_unlock(&syscore_lock);
 }
-EXPORT_SYMBOL_GPL(unregister_syscore_ops);
+EXPORT_SYMBOL_GPL(unregister_syscore);
 
 #ifdef CONFIG_PM_SLEEP
 /**
@@ -46,7 +46,7 @@ EXPORT_SYMBOL_GPL(unregister_syscore_ops);
  */
 int syscore_suspend(void)
 {
-	struct syscore_ops *ops;
+	struct syscore *syscore;
 	int ret = 0;
 
 	trace_suspend_resume(TPS("syscore_suspend"), 0, true);
@@ -59,25 +59,27 @@ int syscore_suspend(void)
 	WARN_ONCE(!irqs_disabled(),
 		"Interrupts enabled before system core suspend.\n");
 
-	list_for_each_entry_reverse(ops, &syscore_ops_list, node)
-		if (ops->suspend) {
-			pm_pr_dbg("Calling %pS\n", ops->suspend);
-			ret = ops->suspend();
+	list_for_each_entry_reverse(syscore, &syscore_list, node)
+		if (syscore->ops->suspend) {
+			pm_pr_dbg("Calling %pS\n", syscore->ops->suspend);
+			ret = syscore->ops->suspend(syscore->data);
 			if (ret)
 				goto err_out;
 			WARN_ONCE(!irqs_disabled(),
-				"Interrupts enabled after %pS\n", ops->suspend);
+				"Interrupts enabled after %pS\n",
+				syscore->ops->suspend);
 		}
 
 	trace_suspend_resume(TPS("syscore_suspend"), 0, false);
 	return 0;
 
  err_out:
-	pr_err("PM: System core suspend callback %pS failed.\n", ops->suspend);
+	pr_err("PM: System core suspend callback %pS failed.\n",
+	       syscore->ops->suspend);
 
-	list_for_each_entry_continue(ops, &syscore_ops_list, node)
-		if (ops->resume)
-			ops->resume();
+	list_for_each_entry_continue(syscore, &syscore_list, node)
+		if (syscore->ops->resume)
+			syscore->ops->resume(syscore->data);
 
 	return ret;
 }
@@ -90,18 +92,19 @@ EXPORT_SYMBOL_GPL(syscore_suspend);
  */
 void syscore_resume(void)
 {
-	struct syscore_ops *ops;
+	struct syscore *syscore;
 
 	trace_suspend_resume(TPS("syscore_resume"), 0, true);
 	WARN_ONCE(!irqs_disabled(),
 		"Interrupts enabled before system core resume.\n");
 
-	list_for_each_entry(ops, &syscore_ops_list, node)
-		if (ops->resume) {
-			pm_pr_dbg("Calling %pS\n", ops->resume);
-			ops->resume();
+	list_for_each_entry(syscore, &syscore_list, node)
+		if (syscore->ops->resume) {
+			pm_pr_dbg("Calling %pS\n", syscore->ops->resume);
+			syscore->ops->resume(syscore->data);
 			WARN_ONCE(!irqs_disabled(),
-				"Interrupts enabled after %pS\n", ops->resume);
+				"Interrupts enabled after %pS\n",
+				syscore->ops->resume);
 		}
 	trace_suspend_resume(TPS("syscore_resume"), 0, false);
 }
@@ -113,16 +116,17 @@ EXPORT_SYMBOL_GPL(syscore_resume);
  */
 void syscore_shutdown(void)
 {
-	struct syscore_ops *ops;
+	struct syscore *syscore;
 
-	mutex_lock(&syscore_ops_lock);
+	mutex_lock(&syscore_lock);
 
-	list_for_each_entry_reverse(ops, &syscore_ops_list, node)
-		if (ops->shutdown) {
+	list_for_each_entry_reverse(syscore, &syscore_list, node)
+		if (syscore->ops->shutdown) {
 			if (initcall_debug)
-				pr_info("PM: Calling %pS\n", ops->shutdown);
-			ops->shutdown();
+				pr_info("PM: Calling %pS\n",
+					syscore->ops->shutdown);
+			syscore->ops->shutdown(syscore->data);
 		}
 
-	mutex_unlock(&syscore_ops_lock);
+	mutex_unlock(&syscore_lock);
 }
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c
index 00cb792bda18b..dd94145c9b222 100644
--- a/drivers/bus/mvebu-mbus.c
+++ b/drivers/bus/mvebu-mbus.c
@@ -1006,7 +1006,7 @@ static __init int mvebu_mbus_debugfs_init(void)
 }
 fs_initcall(mvebu_mbus_debugfs_init);
 
-static int mvebu_mbus_suspend(void)
+static int mvebu_mbus_suspend(void *data)
 {
 	struct mvebu_mbus_state *s = &mbus_state;
 	int win;
@@ -1040,7 +1040,7 @@ static int mvebu_mbus_suspend(void)
 	return 0;
 }
 
-static void mvebu_mbus_resume(void)
+static void mvebu_mbus_resume(void *data)
 {
 	struct mvebu_mbus_state *s = &mbus_state;
 	int win;
@@ -1069,9 +1069,13 @@ static void mvebu_mbus_resume(void)
 	}
 }
 
-static struct syscore_ops mvebu_mbus_syscore_ops = {
-	.suspend	= mvebu_mbus_suspend,
-	.resume		= mvebu_mbus_resume,
+static const struct syscore_ops mvebu_mbus_syscore_ops = {
+	.suspend = mvebu_mbus_suspend,
+	.resume = mvebu_mbus_resume,
+};
+
+static struct syscore mvebu_mbus_syscore = {
+	.ops = &mvebu_mbus_syscore_ops,
 };
 
 static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,
@@ -1118,7 +1122,7 @@ static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus,
 		writel(UNIT_SYNC_BARRIER_ALL,
 		       mbus->mbuswins_base + UNIT_SYNC_BARRIER_OFF);
 
-	register_syscore_ops(&mvebu_mbus_syscore_ops);
+	register_syscore(&mvebu_mbus_syscore);
 
 	return 0;
 }
diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
index 40bdc1c80ab08..3d5c2085fc9e5 100644
--- a/drivers/clk/at91/pmc.c
+++ b/drivers/clk/at91/pmc.c
@@ -115,7 +115,7 @@ struct pmc_data *pmc_data_allocate(unsigned int ncore, unsigned int nsystem,
 /* Address in SECURAM that say if we suspend to backup mode. */
 static void __iomem *at91_pmc_backup_suspend;
 
-static int at91_pmc_suspend(void)
+static int at91_pmc_suspend(void *data)
 {
 	unsigned int backup;
 
@@ -129,7 +129,7 @@ static int at91_pmc_suspend(void)
 	return clk_save_context();
 }
 
-static void at91_pmc_resume(void)
+static void at91_pmc_resume(void *data)
 {
 	unsigned int backup;
 
@@ -143,11 +143,15 @@ static void at91_pmc_resume(void)
 	clk_restore_context();
 }
 
-static struct syscore_ops pmc_syscore_ops = {
+static const struct syscore_ops pmc_syscore_ops = {
 	.suspend = at91_pmc_suspend,
 	.resume = at91_pmc_resume,
 };
 
+static struct syscore pmc_syscore = {
+	.ops = &pmc_syscore_ops,
+};
+
 static const struct of_device_id pmc_dt_ids[] = {
 	{ .compatible = "atmel,sama5d2-pmc" },
 	{ .compatible = "microchip,sama7g5-pmc", },
@@ -184,7 +188,7 @@ static int __init pmc_register_ops(void)
 		return -ENOMEM;
 	}
 
-	register_syscore_ops(&pmc_syscore_ops);
+	register_syscore(&pmc_syscore);
 
 	return 0;
 }
diff --git a/drivers/clk/imx/clk-vf610.c b/drivers/clk/imx/clk-vf610.c
index 9e11f1c7c397e..41eb38552a9c7 100644
--- a/drivers/clk/imx/clk-vf610.c
+++ b/drivers/clk/imx/clk-vf610.c
@@ -139,7 +139,7 @@ static struct clk * __init vf610_get_fixed_clock(
 	return clk;
 };
 
-static int vf610_clk_suspend(void)
+static int vf610_clk_suspend(void *data)
 {
 	int i;
 
@@ -156,7 +156,7 @@ static int vf610_clk_suspend(void)
 	return 0;
 }
 
-static void vf610_clk_resume(void)
+static void vf610_clk_resume(void *data)
 {
 	int i;
 
@@ -171,11 +171,15 @@ static void vf610_clk_resume(void)
 		writel_relaxed(ccgr[i], CCM_CCGRx(i));
 }
 
-static struct syscore_ops vf610_clk_syscore_ops = {
+static const struct syscore_ops vf610_clk_syscore_ops = {
 	.suspend = vf610_clk_suspend,
 	.resume = vf610_clk_resume,
 };
 
+static struct syscore vf610_clk_syscore = {
+	.ops = &vf610_clk_syscore_ops,
+};
+
 static void __init vf610_clocks_init(struct device_node *ccm_node)
 {
 	struct device_node *np;
@@ -462,7 +466,7 @@ static void __init vf610_clocks_init(struct device_node *ccm_node)
 	for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)
 		clk_prepare_enable(clk[clks_init_on[i]]);
 
-	register_syscore_ops(&vf610_clk_syscore_ops);
+	register_syscore(&vf610_clk_syscore);
 
 	/* Add the clocks to provider list */
 	clk_data.clks = clk;
diff --git a/drivers/clk/ingenic/jz4725b-cgu.c b/drivers/clk/ingenic/jz4725b-cgu.c
index 590e9c85cb25b..94cee44c854f9 100644
--- a/drivers/clk/ingenic/jz4725b-cgu.c
+++ b/drivers/clk/ingenic/jz4725b-cgu.c
@@ -268,6 +268,6 @@ static void __init jz4725b_cgu_init(struct device_node *np)
 	if (retval)
 		pr_err("%s: failed to register CGU Clocks\n", __func__);
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 CLK_OF_DECLARE_DRIVER(jz4725b_cgu, "ingenic,jz4725b-cgu", jz4725b_cgu_init);
diff --git a/drivers/clk/ingenic/jz4740-cgu.c b/drivers/clk/ingenic/jz4740-cgu.c
index 3e0a30574ebb3..2def3aedc8dd2 100644
--- a/drivers/clk/ingenic/jz4740-cgu.c
+++ b/drivers/clk/ingenic/jz4740-cgu.c
@@ -266,6 +266,6 @@ static void __init jz4740_cgu_init(struct device_node *np)
 	if (retval)
 		pr_err("%s: failed to register CGU Clocks\n", __func__);
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 CLK_OF_DECLARE_DRIVER(jz4740_cgu, "ingenic,jz4740-cgu", jz4740_cgu_init);
diff --git a/drivers/clk/ingenic/jz4755-cgu.c b/drivers/clk/ingenic/jz4755-cgu.c
index f2c2d848dab7a..17cf5dcaece99 100644
--- a/drivers/clk/ingenic/jz4755-cgu.c
+++ b/drivers/clk/ingenic/jz4755-cgu.c
@@ -337,7 +337,7 @@ static void __init jz4755_cgu_init(struct device_node *np)
 	if (retval)
 		pr_err("%s: failed to register CGU Clocks\n", __func__);
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 /*
  * CGU has some children devices, this is useful for probing children devices
diff --git a/drivers/clk/ingenic/jz4760-cgu.c b/drivers/clk/ingenic/jz4760-cgu.c
index e407f00bd5942..372fe4b079927 100644
--- a/drivers/clk/ingenic/jz4760-cgu.c
+++ b/drivers/clk/ingenic/jz4760-cgu.c
@@ -436,7 +436,7 @@ static void __init jz4760_cgu_init(struct device_node *np)
 	if (retval)
 		pr_err("%s: failed to register CGU Clocks\n", __func__);
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 
 /* We only probe via devicetree, no need for a platform driver */
diff --git a/drivers/clk/ingenic/jz4770-cgu.c b/drivers/clk/ingenic/jz4770-cgu.c
index 6ae1740367f9e..58f1d3bad6774 100644
--- a/drivers/clk/ingenic/jz4770-cgu.c
+++ b/drivers/clk/ingenic/jz4770-cgu.c
@@ -456,7 +456,7 @@ static void __init jz4770_cgu_init(struct device_node *np)
 	if (retval)
 		pr_err("%s: failed to register CGU Clocks\n", __func__);
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 
 /* We only probe via devicetree, no need for a platform driver */
diff --git a/drivers/clk/ingenic/jz4780-cgu.c b/drivers/clk/ingenic/jz4780-cgu.c
index b1dadc0a5e755..a3fb27298bbeb 100644
--- a/drivers/clk/ingenic/jz4780-cgu.c
+++ b/drivers/clk/ingenic/jz4780-cgu.c
@@ -803,6 +803,6 @@ static void __init jz4780_cgu_init(struct device_node *np)
 		return;
 	}
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 CLK_OF_DECLARE_DRIVER(jz4780_cgu, "ingenic,jz4780-cgu", jz4780_cgu_init);
diff --git a/drivers/clk/ingenic/pm.c b/drivers/clk/ingenic/pm.c
index 341752b640d2b..206d5cf2872f6 100644
--- a/drivers/clk/ingenic/pm.c
+++ b/drivers/clk/ingenic/pm.c
@@ -15,7 +15,7 @@
 
 static void __iomem * __maybe_unused ingenic_cgu_base;
 
-static int __maybe_unused ingenic_cgu_pm_suspend(void)
+static int __maybe_unused ingenic_cgu_pm_suspend(void *data)
 {
 	u32 val = readl(ingenic_cgu_base + CGU_REG_LCR);
 
@@ -24,22 +24,26 @@ static int __maybe_unused ingenic_cgu_pm_suspend(void)
 	return 0;
 }
 
-static void __maybe_unused ingenic_cgu_pm_resume(void)
+static void __maybe_unused ingenic_cgu_pm_resume(void *data)
 {
 	u32 val = readl(ingenic_cgu_base + CGU_REG_LCR);
 
 	writel(val & ~LCR_LOW_POWER_MODE, ingenic_cgu_base + CGU_REG_LCR);
 }
 
-static struct syscore_ops __maybe_unused ingenic_cgu_pm_ops = {
+static const struct syscore_ops __maybe_unused ingenic_cgu_pm_ops = {
 	.suspend = ingenic_cgu_pm_suspend,
 	.resume = ingenic_cgu_pm_resume,
 };
 
-void ingenic_cgu_register_syscore_ops(struct ingenic_cgu *cgu)
+static struct syscore __maybe_unused ingenic_cgu_pm = {
+	.ops = &ingenic_cgu_pm_ops,
+};
+
+void ingenic_cgu_register_syscore(struct ingenic_cgu *cgu)
 {
 	if (IS_ENABLED(CONFIG_PM_SLEEP)) {
 		ingenic_cgu_base = cgu->base;
-		register_syscore_ops(&ingenic_cgu_pm_ops);
+		register_syscore(&ingenic_cgu_pm);
 	}
 }
diff --git a/drivers/clk/ingenic/pm.h b/drivers/clk/ingenic/pm.h
index fa7540407b6b7..0dcb57dc64cb4 100644
--- a/drivers/clk/ingenic/pm.h
+++ b/drivers/clk/ingenic/pm.h
@@ -7,6 +7,6 @@
 
 struct ingenic_cgu;
 
-void ingenic_cgu_register_syscore_ops(struct ingenic_cgu *cgu);
+void ingenic_cgu_register_syscore(struct ingenic_cgu *cgu);
 
 #endif /* DRIVERS_CLK_INGENIC_PM_H */
diff --git a/drivers/clk/ingenic/tcu.c b/drivers/clk/ingenic/tcu.c
index 7d04ef40b7cf9..bc6a51da20725 100644
--- a/drivers/clk/ingenic/tcu.c
+++ b/drivers/clk/ingenic/tcu.c
@@ -455,7 +455,7 @@ static int __init ingenic_tcu_probe(struct device_node *np)
 	return ret;
 }
 
-static int __maybe_unused tcu_pm_suspend(void)
+static int __maybe_unused tcu_pm_suspend(void *data)
 {
 	struct ingenic_tcu *tcu = ingenic_tcu;
 
@@ -465,7 +465,7 @@ static int __maybe_unused tcu_pm_suspend(void)
 	return 0;
 }
 
-static void __maybe_unused tcu_pm_resume(void)
+static void __maybe_unused tcu_pm_resume(void *data)
 {
 	struct ingenic_tcu *tcu = ingenic_tcu;
 
@@ -473,11 +473,15 @@ static void __maybe_unused tcu_pm_resume(void)
 		clk_enable(tcu->clk);
 }
 
-static struct syscore_ops __maybe_unused tcu_pm_ops = {
+static const struct syscore_ops __maybe_unused tcu_pm_ops = {
 	.suspend = tcu_pm_suspend,
 	.resume = tcu_pm_resume,
 };
 
+static struct syscore __maybe_unused tcu_pm = {
+	.ops = &tcu_pm_ops,
+};
+
 static void __init ingenic_tcu_init(struct device_node *np)
 {
 	int ret = ingenic_tcu_probe(np);
@@ -486,7 +490,7 @@ static void __init ingenic_tcu_init(struct device_node *np)
 		pr_crit("Failed to initialize TCU clocks: %d\n", ret);
 
 	if (IS_ENABLED(CONFIG_PM_SLEEP))
-		register_syscore_ops(&tcu_pm_ops);
+		register_syscore(&tcu_pm);
 }
 
 CLK_OF_DECLARE_DRIVER(jz4740_cgu, "ingenic,jz4740-tcu", ingenic_tcu_init);
diff --git a/drivers/clk/ingenic/x1000-cgu.c b/drivers/clk/ingenic/x1000-cgu.c
index feb03eed4fe8c..98f7da93e0137 100644
--- a/drivers/clk/ingenic/x1000-cgu.c
+++ b/drivers/clk/ingenic/x1000-cgu.c
@@ -555,7 +555,7 @@ static void __init x1000_cgu_init(struct device_node *np)
 		return;
 	}
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 /*
  * CGU has some children devices, this is useful for probing children devices
diff --git a/drivers/clk/ingenic/x1830-cgu.c b/drivers/clk/ingenic/x1830-cgu.c
index 0fd46e50a513f..acf856e5009e0 100644
--- a/drivers/clk/ingenic/x1830-cgu.c
+++ b/drivers/clk/ingenic/x1830-cgu.c
@@ -463,7 +463,7 @@ static void __init x1830_cgu_init(struct device_node *np)
 		return;
 	}
 
-	ingenic_cgu_register_syscore_ops(cgu);
+	ingenic_cgu_register_syscore(cgu);
 }
 /*
  * CGU has some children devices, this is useful for probing children devices
diff --git a/drivers/clk/mvebu/common.c b/drivers/clk/mvebu/common.c
index 785dbede48354..5adbbd91a6db3 100644
--- a/drivers/clk/mvebu/common.c
+++ b/drivers/clk/mvebu/common.c
@@ -215,22 +215,26 @@ static struct clk *clk_gating_get_src(
 	return ERR_PTR(-ENODEV);
 }
 
-static int mvebu_clk_gating_suspend(void)
+static int mvebu_clk_gating_suspend(void *data)
 {
 	ctrl->saved_reg = readl(ctrl->base);
 	return 0;
 }
 
-static void mvebu_clk_gating_resume(void)
+static void mvebu_clk_gating_resume(void *data)
 {
 	writel(ctrl->saved_reg, ctrl->base);
 }
 
-static struct syscore_ops clk_gate_syscore_ops = {
+static const struct syscore_ops clk_gate_syscore_ops = {
 	.suspend = mvebu_clk_gating_suspend,
 	.resume = mvebu_clk_gating_resume,
 };
 
+static struct syscore clk_gate_syscore = {
+	.ops = &clk_gate_syscore_ops,
+};
+
 void __init mvebu_clk_gating_setup(struct device_node *np,
 				   const struct clk_gating_soc_desc *desc)
 {
@@ -284,7 +288,7 @@ void __init mvebu_clk_gating_setup(struct device_node *np,
 
 	of_clk_add_provider(np, clk_gating_get_src, ctrl);
 
-	register_syscore_ops(&clk_gate_syscore_ops);
+	register_syscore(&clk_gate_syscore);
 
 	return;
 gates_out:
diff --git a/drivers/clk/rockchip/clk-rk3288.c b/drivers/clk/rockchip/clk-rk3288.c
index 90d329216064a..9e64fa5321a2c 100644
--- a/drivers/clk/rockchip/clk-rk3288.c
+++ b/drivers/clk/rockchip/clk-rk3288.c
@@ -871,7 +871,7 @@ static const int rk3288_saved_cru_reg_ids[] = {
 
 static u32 rk3288_saved_cru_regs[ARRAY_SIZE(rk3288_saved_cru_reg_ids)];
 
-static int rk3288_clk_suspend(void)
+static int rk3288_clk_suspend(void *data)
 {
 	int i, reg_id;
 
@@ -906,7 +906,7 @@ static int rk3288_clk_suspend(void)
 	return 0;
 }
 
-static void rk3288_clk_resume(void)
+static void rk3288_clk_resume(void *data)
 {
 	int i, reg_id;
 
@@ -923,11 +923,15 @@ static void rk3288_clk_shutdown(void)
 	writel_relaxed(0xf3030000, rk3288_cru_base + RK3288_MODE_CON);
 }
 
-static struct syscore_ops rk3288_clk_syscore_ops = {
+static const struct syscore_ops rk3288_clk_syscore_ops = {
 	.suspend = rk3288_clk_suspend,
 	.resume = rk3288_clk_resume,
 };
 
+static struct syscore rk3288_clk_syscore = {
+	.ops = &rk3288_clk_syscore_ops,
+};
+
 static void __init rk3288_common_init(struct device_node *np,
 				      enum rk3288_variant soc)
 {
@@ -976,7 +980,7 @@ static void __init rk3288_common_init(struct device_node *np,
 
 	rockchip_register_restart_notifier(ctx, RK3288_GLB_SRST_FST,
 					   rk3288_clk_shutdown);
-	register_syscore_ops(&rk3288_clk_syscore_ops);
+	register_syscore(&rk3288_clk_syscore);
 
 	rockchip_clk_of_add_provider(np, ctx);
 }
diff --git a/drivers/clk/samsung/clk-s5pv210-audss.c b/drivers/clk/samsung/clk-s5pv210-audss.c
index b31c00ea331f3..75c7721e4e4e4 100644
--- a/drivers/clk/samsung/clk-s5pv210-audss.c
+++ b/drivers/clk/samsung/clk-s5pv210-audss.c
@@ -35,7 +35,7 @@ static unsigned long reg_save[][2] = {
 	{ASS_CLK_GATE, 0},
 };
 
-static int s5pv210_audss_clk_suspend(void)
+static int s5pv210_audss_clk_suspend(void *data)
 {
 	int i;
 
@@ -45,7 +45,7 @@ static int s5pv210_audss_clk_suspend(void)
 	return 0;
 }
 
-static void s5pv210_audss_clk_resume(void)
+static void s5pv210_audss_clk_resume(void *data)
 {
 	int i;
 
@@ -53,10 +53,14 @@ static void s5pv210_audss_clk_resume(void)
 		writel(reg_save[i][1], reg_base + reg_save[i][0]);
 }
 
-static struct syscore_ops s5pv210_audss_clk_syscore_ops = {
+static const struct syscore_ops s5pv210_audss_clk_syscore_ops = {
 	.suspend	= s5pv210_audss_clk_suspend,
 	.resume		= s5pv210_audss_clk_resume,
 };
+
+static struct syscore s5pv210_audss_clk_syscore = {
+	.ops = &s5pv210_audss_clk_syscore_ops,
+};
 #endif /* CONFIG_PM_SLEEP */
 
 /* register s5pv210_audss clocks */
@@ -174,7 +178,7 @@ static int s5pv210_audss_clk_probe(struct platform_device *pdev)
 	}
 
 #ifdef CONFIG_PM_SLEEP
-	register_syscore_ops(&s5pv210_audss_clk_syscore_ops);
+	register_syscore(&s5pv210_audss_clk_syscore);
 #endif
 
 	return 0;
diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
index e6533513f8ac2..47ae261decd69 100644
--- a/drivers/clk/samsung/clk.c
+++ b/drivers/clk/samsung/clk.c
@@ -271,7 +271,7 @@ void __init samsung_clk_of_register_fixed_ext(struct samsung_clk_provider *ctx,
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int samsung_clk_suspend(void)
+static int samsung_clk_suspend(void *data)
 {
 	struct samsung_clock_reg_cache *reg_cache;
 
@@ -284,7 +284,7 @@ static int samsung_clk_suspend(void)
 	return 0;
 }
 
-static void samsung_clk_resume(void)
+static void samsung_clk_resume(void *data)
 {
 	struct samsung_clock_reg_cache *reg_cache;
 
@@ -293,11 +293,15 @@ static void samsung_clk_resume(void)
 				reg_cache->rd_num);
 }
 
-static struct syscore_ops samsung_clk_syscore_ops = {
+static const struct syscore_ops samsung_clk_syscore_ops = {
 	.suspend = samsung_clk_suspend,
 	.resume = samsung_clk_resume,
 };
 
+static struct syscore samsung_clk_syscore = {
+	.ops = &samsung_clk_syscore_ops,
+};
+
 void samsung_clk_extended_sleep_init(void __iomem *reg_base,
 			const unsigned long *rdump,
 			unsigned long nr_rdump,
@@ -316,7 +320,7 @@ void samsung_clk_extended_sleep_init(void __iomem *reg_base,
 		panic("could not allocate register dump storage.\n");
 
 	if (list_empty(&clock_reg_cache_list))
-		register_syscore_ops(&samsung_clk_syscore_ops);
+		register_syscore(&samsung_clk_syscore);
 
 	reg_cache->reg_base = reg_base;
 	reg_cache->rd_num = nr_rdump;
diff --git a/drivers/clk/tegra/clk-tegra210.c b/drivers/clk/tegra/clk-tegra210.c
index a3488aaac3f78..8a411fc580b46 100644
--- a/drivers/clk/tegra/clk-tegra210.c
+++ b/drivers/clk/tegra/clk-tegra210.c
@@ -3444,7 +3444,7 @@ static void tegra210_disable_cpu_clock(u32 cpu)
 static u32 spare_reg_ctx, misc_clk_enb_ctx, clk_msk_arm_ctx;
 static u32 cpu_softrst_ctx[3];
 
-static int tegra210_clk_suspend(void)
+static int tegra210_clk_suspend(void *data)
 {
 	unsigned int i;
 
@@ -3465,7 +3465,7 @@ static int tegra210_clk_suspend(void)
 	return 0;
 }
 
-static void tegra210_clk_resume(void)
+static void tegra210_clk_resume(void *data)
 {
 	unsigned int i;
 
@@ -3523,13 +3523,17 @@ static void tegra210_cpu_clock_resume(void)
 }
 #endif
 
-static struct syscore_ops tegra_clk_syscore_ops = {
+static const struct syscore_ops tegra_clk_syscore_ops = {
 #ifdef CONFIG_PM_SLEEP
 	.suspend = tegra210_clk_suspend,
 	.resume = tegra210_clk_resume,
 #endif
 };
 
+static struct syscore tegra_clk_syscore = {
+	.ops = &tegra_clk_syscore_ops,
+};
+
 static struct tegra_cpu_car_ops tegra210_cpu_car_ops = {
 	.wait_for_reset	= tegra210_wait_cpu_in_reset,
 	.disable_clock	= tegra210_disable_cpu_clock,
@@ -3813,6 +3817,6 @@ static void __init tegra210_clock_init(struct device_node *np)
 
 	tegra_cpu_car_ops = &tegra210_cpu_car_ops;
 
-	register_syscore_ops(&tegra_clk_syscore_ops);
+	register_syscore(&tegra_clk_syscore);
 }
 CLK_OF_DECLARE(tegra210, "nvidia,tegra210-car", tegra210_clock_init);
diff --git a/drivers/clocksource/timer-armada-370-xp.c b/drivers/clocksource/timer-armada-370-xp.c
index 49735ced52bb8..5db0cbecbf6d5 100644
--- a/drivers/clocksource/timer-armada-370-xp.c
+++ b/drivers/clocksource/timer-armada-370-xp.c
@@ -208,14 +208,14 @@ static int armada_370_xp_timer_dying_cpu(unsigned int cpu)
 
 static u32 timer0_ctrl_reg, timer0_local_ctrl_reg;
 
-static int armada_370_xp_timer_suspend(void)
+static int armada_370_xp_timer_suspend(void *data)
 {
 	timer0_ctrl_reg = readl(timer_base + TIMER_CTRL_OFF);
 	timer0_local_ctrl_reg = readl(local_base + TIMER_CTRL_OFF);
 	return 0;
 }
 
-static void armada_370_xp_timer_resume(void)
+static void armada_370_xp_timer_resume(void *data)
 {
 	writel(0xffffffff, timer_base + TIMER0_VAL_OFF);
 	writel(0xffffffff, timer_base + TIMER0_RELOAD_OFF);
@@ -223,11 +223,15 @@ static void armada_370_xp_timer_resume(void)
 	writel(timer0_local_ctrl_reg, local_base + TIMER_CTRL_OFF);
 }
 
-static struct syscore_ops armada_370_xp_timer_syscore_ops = {
+static const struct syscore_ops armada_370_xp_timer_syscore_ops = {
 	.suspend	= armada_370_xp_timer_suspend,
 	.resume		= armada_370_xp_timer_resume,
 };
 
+static struct syscore armada_370_xp_timer_syscore = {
+	.ops = &armada_370_xp_timer_syscore_ops,
+};
+
 static unsigned long armada_370_delay_timer_read(void)
 {
 	return ~readl(timer_base + TIMER0_VAL_OFF);
@@ -325,7 +329,7 @@ static int __init armada_370_xp_timer_common_init(struct device_node *np)
 		return res;
 	}
 
-	register_syscore_ops(&armada_370_xp_timer_syscore_ops);
+	register_syscore(&armada_370_xp_timer_syscore);
 	
 	return 0;
 }
diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
index f3c30037dc8ef..4ad8d614acf69 100644
--- a/drivers/cpuidle/cpuidle-psci.c
+++ b/drivers/cpuidle/cpuidle-psci.c
@@ -158,26 +158,30 @@ static void psci_idle_syscore_switch(bool suspend)
 	}
 }
 
-static int psci_idle_syscore_suspend(void)
+static int psci_idle_syscore_suspend(void *data)
 {
 	psci_idle_syscore_switch(true);
 	return 0;
 }
 
-static void psci_idle_syscore_resume(void)
+static void psci_idle_syscore_resume(void *data)
 {
 	psci_idle_syscore_switch(false);
 }
 
-static struct syscore_ops psci_idle_syscore_ops = {
+static const struct syscore_ops psci_idle_syscore_ops = {
 	.suspend = psci_idle_syscore_suspend,
 	.resume = psci_idle_syscore_resume,
 };
 
+static struct syscore psci_idle_syscore = {
+	.ops = &psci_idle_syscore_ops,
+};
+
 static void psci_idle_init_syscore(void)
 {
 	if (psci_cpuidle_use_syscore)
-		register_syscore_ops(&psci_idle_syscore_ops);
+		register_syscore(&psci_idle_syscore);
 }
 
 static void psci_idle_init_cpuhp(void)
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index a8ab78ae7fa30..a61bc17b27081 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -667,7 +667,7 @@ static const struct dev_pm_ops mxc_gpio_dev_pm_ops = {
 	RUNTIME_PM_OPS(mxc_gpio_runtime_suspend, mxc_gpio_runtime_resume, NULL)
 };
 
-static int mxc_gpio_syscore_suspend(void)
+static int mxc_gpio_syscore_suspend(void *data)
 {
 	struct mxc_gpio_port *port;
 	int ret;
@@ -684,7 +684,7 @@ static int mxc_gpio_syscore_suspend(void)
 	return 0;
 }
 
-static void mxc_gpio_syscore_resume(void)
+static void mxc_gpio_syscore_resume(void *data)
 {
 	struct mxc_gpio_port *port;
 	int ret;
@@ -701,11 +701,15 @@ static void mxc_gpio_syscore_resume(void)
 	}
 }
 
-static struct syscore_ops mxc_gpio_syscore_ops = {
+static const struct syscore_ops mxc_gpio_syscore_ops = {
 	.suspend = mxc_gpio_syscore_suspend,
 	.resume = mxc_gpio_syscore_resume,
 };
 
+static struct syscore mxc_gpio_syscore = {
+	.ops = &mxc_gpio_syscore_ops,
+};
+
 static struct platform_driver mxc_gpio_driver = {
 	.driver		= {
 		.name	= "gpio-mxc",
@@ -718,7 +722,7 @@ static struct platform_driver mxc_gpio_driver = {
 
 static int __init gpio_mxc_init(void)
 {
-	register_syscore_ops(&mxc_gpio_syscore_ops);
+	register_syscore(&mxc_gpio_syscore);
 
 	return platform_driver_register(&mxc_gpio_driver);
 }
diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c
index 91cea97255fa6..b8c49967e0934 100644
--- a/drivers/gpio/gpio-pxa.c
+++ b/drivers/gpio/gpio-pxa.c
@@ -746,7 +746,7 @@ static int __init pxa_gpio_dt_init(void)
 device_initcall(pxa_gpio_dt_init);
 
 #ifdef CONFIG_PM
-static int pxa_gpio_suspend(void)
+static int pxa_gpio_suspend(void *data)
 {
 	struct pxa_gpio_chip *pchip = pxa_gpio_chip;
 	struct pxa_gpio_bank *c;
@@ -767,7 +767,7 @@ static int pxa_gpio_suspend(void)
 	return 0;
 }
 
-static void pxa_gpio_resume(void)
+static void pxa_gpio_resume(void *data)
 {
 	struct pxa_gpio_chip *pchip = pxa_gpio_chip;
 	struct pxa_gpio_bank *c;
@@ -791,14 +791,18 @@ static void pxa_gpio_resume(void)
 #define pxa_gpio_resume		NULL
 #endif
 
-static struct syscore_ops pxa_gpio_syscore_ops = {
+static const struct syscore_ops pxa_gpio_syscore_ops = {
 	.suspend	= pxa_gpio_suspend,
 	.resume		= pxa_gpio_resume,
 };
 
+static struct syscore pxa_gpio_syscore = {
+	.ops = &pxa_gpio_syscore_ops,
+};
+
 static int __init pxa_gpio_sysinit(void)
 {
-	register_syscore_ops(&pxa_gpio_syscore_ops);
+	register_syscore(&pxa_gpio_syscore);
 	return 0;
 }
 postcore_initcall(pxa_gpio_sysinit);
diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c
index 242dad763ac4d..9e3a1199f51b8 100644
--- a/drivers/gpio/gpio-sa1100.c
+++ b/drivers/gpio/gpio-sa1100.c
@@ -253,7 +253,7 @@ static void sa1100_gpio_handler(struct irq_desc *desc)
 	} while (mask);
 }
 
-static int sa1100_gpio_suspend(void)
+static int sa1100_gpio_suspend(void *data)
 {
 	struct sa1100_gpio_chip *sgc = &sa1100_gpio_chip;
 
@@ -272,19 +272,23 @@ static int sa1100_gpio_suspend(void)
 	return 0;
 }
 
-static void sa1100_gpio_resume(void)
+static void sa1100_gpio_resume(void *data)
 {
 	sa1100_update_edge_regs(&sa1100_gpio_chip);
 }
 
-static struct syscore_ops sa1100_gpio_syscore_ops = {
+static const struct syscore_ops sa1100_gpio_syscore_ops = {
 	.suspend	= sa1100_gpio_suspend,
 	.resume		= sa1100_gpio_resume,
 };
 
+static struct syscore sa1100_gpio_syscore = {
+	.ops = &sa1100_gpio_syscore_ops,
+};
+
 static int __init sa1100_gpio_init_devicefs(void)
 {
-	register_syscore_ops(&sa1100_gpio_syscore_ops);
+	register_syscore(&sa1100_gpio_syscore);
 	return 0;
 }
 
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index db1c71832f2a8..4d3c78c388418 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -2776,7 +2776,7 @@ static void hv_crash_handler(struct pt_regs *regs)
 	hv_synic_disable_regs(cpu);
 };
 
-static int hv_synic_suspend(void)
+static int hv_synic_suspend(void *data)
 {
 	/*
 	 * When we reach here, all the non-boot CPUs have been offlined.
@@ -2803,7 +2803,7 @@ static int hv_synic_suspend(void)
 	return 0;
 }
 
-static void hv_synic_resume(void)
+static void hv_synic_resume(void *data)
 {
 	hv_synic_enable_regs(0);
 
@@ -2815,11 +2815,15 @@ static void hv_synic_resume(void)
 }
 
 /* The callbacks run only on CPU0, with irqs_disabled. */
-static struct syscore_ops hv_synic_syscore_ops = {
+static const struct syscore_ops hv_synic_syscore_ops = {
 	.suspend = hv_synic_suspend,
 	.resume = hv_synic_resume,
 };
 
+static struct syscore hv_synic_syscore = {
+	.ops = &hv_synic_syscore_ops,
+};
+
 static int __init hv_acpi_init(void)
 {
 	int ret;
@@ -2862,7 +2866,7 @@ static int __init hv_acpi_init(void)
 	hv_setup_kexec_handler(hv_kexec_handler);
 	hv_setup_crash_handler(hv_crash_handler);
 
-	register_syscore_ops(&hv_synic_syscore_ops);
+	register_syscore(&hv_synic_syscore);
 
 	return 0;
 
@@ -2876,7 +2880,7 @@ static void __exit vmbus_exit(void)
 {
 	int cpu;
 
-	unregister_syscore_ops(&hv_synic_syscore_ops);
+	unregister_syscore(&hv_synic_syscore);
 
 	hv_remove_kexec_handler();
 	hv_remove_crash_handler();
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 804b731957db2..57d0e37f6c2bd 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -2917,7 +2917,7 @@ static void disable_iommus(void)
  * disable suspend until real resume implemented
  */
 
-static void amd_iommu_resume(void)
+static void amd_iommu_resume(void *data)
 {
 	struct amd_iommu *iommu;
 
@@ -2931,7 +2931,7 @@ static void amd_iommu_resume(void)
 	amd_iommu_enable_interrupts();
 }
 
-static int amd_iommu_suspend(void)
+static int amd_iommu_suspend(void *data)
 {
 	/* disable IOMMUs to go out of the way for BIOS */
 	disable_iommus();
@@ -2939,11 +2939,15 @@ static int amd_iommu_suspend(void)
 	return 0;
 }
 
-static struct syscore_ops amd_iommu_syscore_ops = {
+static const struct syscore_ops amd_iommu_syscore_ops = {
 	.suspend = amd_iommu_suspend,
 	.resume = amd_iommu_resume,
 };
 
+static struct syscore amd_iommu_syscore = {
+	.ops = &amd_iommu_syscore_ops,
+};
+
 static void __init free_iommu_resources(void)
 {
 	kmem_cache_destroy(amd_iommu_irq_cache);
@@ -3349,7 +3353,7 @@ static int __init state_next(void)
 		init_state = IOMMU_ENABLED;
 		break;
 	case IOMMU_ENABLED:
-		register_syscore_ops(&amd_iommu_syscore_ops);
+		register_syscore(&amd_iommu_syscore);
 		iommu_snp_enable();
 
 		amd_iommu_apply_erratum_snp();
@@ -3463,12 +3467,12 @@ int __init amd_iommu_enable(void)
 
 void amd_iommu_disable(void)
 {
-	amd_iommu_suspend();
+	amd_iommu_suspend(NULL);
 }
 
 int amd_iommu_reenable(int mode)
 {
-	amd_iommu_resume();
+	amd_iommu_resume(NULL);
 
 	return 0;
 }
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 6c1e33b84bd56..39742525e1a89 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -2504,7 +2504,7 @@ static void iommu_flush_all(void)
 	}
 }
 
-static int iommu_suspend(void)
+static int iommu_suspend(void *data)
 {
 	struct dmar_drhd_unit *drhd;
 	struct intel_iommu *iommu = NULL;
@@ -2531,7 +2531,7 @@ static int iommu_suspend(void)
 	return 0;
 }
 
-static void iommu_resume(void)
+static void iommu_resume(void *data)
 {
 	struct dmar_drhd_unit *drhd;
 	struct intel_iommu *iommu = NULL;
@@ -2562,14 +2562,18 @@ static void iommu_resume(void)
 	}
 }
 
-static struct syscore_ops iommu_syscore_ops = {
+static const struct syscore_ops iommu_syscore_ops = {
 	.resume		= iommu_resume,
 	.suspend	= iommu_suspend,
 };
 
+static struct syscore iommu_syscore = {
+	.ops = &iommu_syscore_ops,
+};
+
 static void __init init_iommu_pm_ops(void)
 {
-	register_syscore_ops(&iommu_syscore_ops);
+	register_syscore(&iommu_syscore);
 }
 
 #else
diff --git a/drivers/irqchip/exynos-combiner.c b/drivers/irqchip/exynos-combiner.c
index 552aa04ff0631..87403f180fb4e 100644
--- a/drivers/irqchip/exynos-combiner.c
+++ b/drivers/irqchip/exynos-combiner.c
@@ -200,12 +200,13 @@ static void __init combiner_init(void __iomem *combiner_base,
 
 /**
  * combiner_suspend - save interrupt combiner state before suspend
+ * @data: syscore context
  *
  * Save the interrupt enable set register for all combiner groups since
  * the state is lost when the system enters into a sleep state.
  *
  */
-static int combiner_suspend(void)
+static int combiner_suspend(void *data)
 {
 	int i;
 
@@ -218,12 +219,13 @@ static int combiner_suspend(void)
 
 /**
  * combiner_resume - restore interrupt combiner state after resume
+ * @data: syscore context
  *
  * Restore the interrupt enable set register for all combiner groups since
  * the state is lost when the system enters into a sleep state on suspend.
  *
  */
-static void combiner_resume(void)
+static void combiner_resume(void *data)
 {
 	int i;
 
@@ -240,11 +242,15 @@ static void combiner_resume(void)
 #define combiner_resume		NULL
 #endif
 
-static struct syscore_ops combiner_syscore_ops = {
+static const struct syscore_ops combiner_syscore_ops = {
 	.suspend	= combiner_suspend,
 	.resume		= combiner_resume,
 };
 
+static struct syscore combiner_syscore = {
+	.ops = &combiner_syscore_ops,
+};
+
 static int __init combiner_of_init(struct device_node *np,
 				   struct device_node *parent)
 {
@@ -264,7 +270,7 @@ static int __init combiner_of_init(struct device_node *np,
 
 	combiner_init(combiner_base, np);
 
-	register_syscore_ops(&combiner_syscore_ops);
+	register_syscore(&combiner_syscore);
 
 	return 0;
 }
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index d7c5ef2484744..fd6ae54dfb97c 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -724,7 +724,7 @@ static void __exception_irq_entry mpic_handle_irq(struct pt_regs *regs)
 	} while (1);
 }
 
-static int mpic_suspend(void)
+static int mpic_suspend(void *data)
 {
 	struct mpic *mpic = mpic_data;
 
@@ -733,7 +733,7 @@ static int mpic_suspend(void)
 	return 0;
 }
 
-static void mpic_resume(void)
+static void mpic_resume(void *data)
 {
 	struct mpic *mpic = mpic_data;
 	bool src0, src1;
@@ -786,11 +786,15 @@ static void mpic_resume(void)
 		mpic_ipi_resume(mpic);
 }
 
-static struct syscore_ops mpic_syscore_ops = {
+static const struct syscore_ops mpic_syscore_ops = {
 	.suspend	= mpic_suspend,
 	.resume		= mpic_resume,
 };
 
+static struct syscore mpic_syscore = {
+	.ops = &mpic_syscore_ops,
+};
+
 static int __init mpic_map_region(struct device_node *np, int index,
 				  void __iomem **base, phys_addr_t *phys_base)
 {
@@ -903,7 +907,7 @@ static int __init mpic_of_init(struct device_node *node, struct device_node *par
 						 mpic_handle_cascade_irq, mpic);
 	}
 
-	register_syscore_ops(&mpic_syscore_ops);
+	register_syscore(&mpic_syscore);
 
 	return 0;
 }
diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index bca43fa99c8f2..ecd7738663111 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -291,7 +291,7 @@ static int bcm7038_l1_init_one(struct device_node *dn, unsigned int idx,
 static LIST_HEAD(bcm7038_l1_intcs_list);
 static DEFINE_RAW_SPINLOCK(bcm7038_l1_intcs_lock);
 
-static int bcm7038_l1_suspend(void)
+static int bcm7038_l1_suspend(void *data)
 {
 	struct bcm7038_l1_chip *intc;
 	int boot_cpu, word;
@@ -317,7 +317,7 @@ static int bcm7038_l1_suspend(void)
 	return 0;
 }
 
-static void bcm7038_l1_resume(void)
+static void bcm7038_l1_resume(void *data)
 {
 	struct bcm7038_l1_chip *intc;
 	int boot_cpu, word;
@@ -338,11 +338,15 @@ static void bcm7038_l1_resume(void)
 	}
 }
 
-static struct syscore_ops bcm7038_l1_syscore_ops = {
+static const struct syscore_ops bcm7038_l1_syscore_ops = {
 	.suspend	= bcm7038_l1_suspend,
 	.resume		= bcm7038_l1_resume,
 };
 
+static struct syscore bcm7038_l1_syscore = {
+	.ops = &bcm7038_l1_syscore_ops,
+};
+
 static int bcm7038_l1_set_wake(struct irq_data *d, unsigned int on)
 {
 	struct bcm7038_l1_chip *intc = irq_data_get_irq_chip_data(d);
@@ -429,7 +433,7 @@ static int bcm7038_l1_of_init(struct device_node *dn, struct device_node *parent
 	raw_spin_unlock(&bcm7038_l1_intcs_lock);
 
 	if (list_is_singular(&bcm7038_l1_intcs_list))
-		register_syscore_ops(&bcm7038_l1_syscore_ops);
+		register_syscore(&bcm7038_l1_syscore);
 #endif
 
 	pr_info("registered BCM7038 L1 intc (%pOF, IRQs: %d)\n",
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 299134fd02c61..fdf8f1bd157ea 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -4894,7 +4894,7 @@ static void its_enable_quirks(struct its_node *its)
 				     its_quirks, its);
 }
 
-static int its_save_disable(void)
+static int its_save_disable(void *data)
 {
 	struct its_node *its;
 	int err = 0;
@@ -4930,7 +4930,7 @@ static int its_save_disable(void)
 	return err;
 }
 
-static void its_restore_enable(void)
+static void its_restore_enable(void *data)
 {
 	struct its_node *its;
 	int ret;
@@ -4990,11 +4990,15 @@ static void its_restore_enable(void)
 	raw_spin_unlock(&its_lock);
 }
 
-static struct syscore_ops its_syscore_ops = {
+static const struct syscore_ops its_syscore_ops = {
 	.suspend = its_save_disable,
 	.resume = its_restore_enable,
 };
 
+static struct syscore its_syscore = {
+	.ops = &its_syscore_ops,
+};
+
 static void __init __iomem *its_map_one(struct resource *res, int *err)
 {
 	void __iomem *its_base;
@@ -5772,7 +5776,7 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
 		}
 	}
 
-	register_syscore_ops(&its_syscore_ops);
+	register_syscore(&its_syscore);
 
 	return 0;
 }
diff --git a/drivers/irqchip/irq-i8259.c b/drivers/irqchip/irq-i8259.c
index 115bdcffab248..f133f6176a12f 100644
--- a/drivers/irqchip/irq-i8259.c
+++ b/drivers/irqchip/irq-i8259.c
@@ -202,13 +202,13 @@ static void mask_and_ack_8259A(struct irq_data *d)
 	}
 }
 
-static void i8259A_resume(void)
+static void i8259A_resume(void *data)
 {
 	if (i8259A_auto_eoi >= 0)
 		init_8259A(i8259A_auto_eoi);
 }
 
-static void i8259A_shutdown(void)
+static void i8259A_shutdown(void *data)
 {
 	/* Put the i8259A into a quiescent state that
 	 * the kernel initialization code can get it
@@ -220,11 +220,15 @@ static void i8259A_shutdown(void)
 	}
 }
 
-static struct syscore_ops i8259_syscore_ops = {
+static const struct syscore_ops i8259_syscore_ops = {
 	.resume = i8259A_resume,
 	.shutdown = i8259A_shutdown,
 };
 
+static struct syscore i8259_syscore = {
+	.ops = &i8259_syscore_ops,
+};
+
 static void init_8259A(int auto_eoi)
 {
 	unsigned long flags;
@@ -320,7 +324,7 @@ struct irq_domain * __init __init_i8259_irqs(struct device_node *node)
 
 	if (request_irq(irq, no_action, IRQF_NO_THREAD, "cascade", NULL))
 		pr_err("Failed to register cascade interrupt\n");
-	register_syscore_ops(&i8259_syscore_ops);
+	register_syscore(&i8259_syscore);
 	return domain;
 }
 
diff --git a/drivers/irqchip/irq-imx-gpcv2.c b/drivers/irqchip/irq-imx-gpcv2.c
index 8a0e82067924e..2107729cf0ddc 100644
--- a/drivers/irqchip/irq-imx-gpcv2.c
+++ b/drivers/irqchip/irq-imx-gpcv2.c
@@ -33,7 +33,7 @@ static void __iomem *gpcv2_idx_to_reg(struct gpcv2_irqchip_data *cd, int i)
 	return cd->gpc_base + cd->cpu2wakeup + i * 4;
 }
 
-static int gpcv2_wakeup_source_save(void)
+static int gpcv2_wakeup_source_save(void *data)
 {
 	struct gpcv2_irqchip_data *cd;
 	void __iomem *reg;
@@ -52,7 +52,7 @@ static int gpcv2_wakeup_source_save(void)
 	return 0;
 }
 
-static void gpcv2_wakeup_source_restore(void)
+static void gpcv2_wakeup_source_restore(void *data)
 {
 	struct gpcv2_irqchip_data *cd;
 	int i;
@@ -65,9 +65,13 @@ static void gpcv2_wakeup_source_restore(void)
 		writel_relaxed(cd->saved_irq_mask[i], gpcv2_idx_to_reg(cd, i));
 }
 
-static struct syscore_ops imx_gpcv2_syscore_ops = {
-	.suspend	= gpcv2_wakeup_source_save,
-	.resume		= gpcv2_wakeup_source_restore,
+static const struct syscore_ops gpcv2_syscore_ops = {
+	.suspend = gpcv2_wakeup_source_save,
+	.resume = gpcv2_wakeup_source_restore,
+};
+
+static struct syscore gpcv2_syscore = {
+	.ops = &gpcv2_syscore_ops,
 };
 
 static int imx_gpcv2_irq_set_wake(struct irq_data *d, unsigned int on)
@@ -276,7 +280,7 @@ static int __init imx_gpcv2_irqchip_init(struct device_node *node,
 	writel_relaxed(~0x1, cd->gpc_base + cd->cpu2wakeup);
 
 	imx_gpcv2_instance = cd;
-	register_syscore_ops(&imx_gpcv2_syscore_ops);
+	register_syscore(&gpcv2_syscore);
 
 	/*
 	 * Clear the OF_POPULATED flag set in of_irq_init so that
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index e24db71a8783c..e3b49d018a5e7 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -306,21 +306,25 @@ static struct irq_domain *acpi_get_vec_parent(int node, struct acpi_vector_group
 	return NULL;
 }
 
-static int eiointc_suspend(void)
+static int eiointc_suspend(void *data)
 {
 	return 0;
 }
 
-static void eiointc_resume(void)
+static void eiointc_resume(void *data)
 {
 	eiointc_router_init(0);
 }
 
-static struct syscore_ops eiointc_syscore_ops = {
+static const struct syscore_ops eiointc_syscore_ops = {
 	.suspend = eiointc_suspend,
 	.resume = eiointc_resume,
 };
 
+static struct syscore eiointc_syscore = {
+	.ops = &eiointc_syscore_ops,
+};
+
 static int __init pch_pic_parse_madt(union acpi_subtable_headers *header,
 					const unsigned long end)
 {
@@ -400,7 +404,7 @@ static int __init eiointc_init(struct eiointc_priv *priv, int parent_irq,
 	irq_set_chained_handler_and_data(parent_irq, eiointc_irq_dispatch, priv);
 
 	if (nr_pics == 1) {
-		register_syscore_ops(&eiointc_syscore_ops);
+		register_syscore(&eiointc_syscore);
 		cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_EIOINTC_STARTING,
 					  "irqchip/loongarch/eiointc:starting",
 					  eiointc_router_init, NULL);
diff --git a/drivers/irqchip/irq-loongson-htpic.c b/drivers/irqchip/irq-loongson-htpic.c
index f4abdf156de71..1c691c4be9894 100644
--- a/drivers/irqchip/irq-loongson-htpic.c
+++ b/drivers/irqchip/irq-loongson-htpic.c
@@ -71,15 +71,19 @@ static void htpic_reg_init(void)
 	writel(0xffff, htpic->base + HTINT_EN_OFF);
 }
 
-static void htpic_resume(void)
+static void htpic_resume(void *data)
 {
 	htpic_reg_init();
 }
 
-struct syscore_ops htpic_syscore_ops = {
+static const struct syscore_ops htpic_syscore_ops = {
 	.resume		= htpic_resume,
 };
 
+static struct syscore htpic_syscore = {
+	.ops = &htpic_syscore_ops,
+};
+
 static int __init htpic_of_init(struct device_node *node, struct device_node *parent)
 {
 	unsigned int parent_irq[4];
@@ -130,7 +134,7 @@ static int __init htpic_of_init(struct device_node *node, struct device_node *pa
 						htpic_irq_dispatch, htpic);
 	}
 
-	register_syscore_ops(&htpic_syscore_ops);
+	register_syscore(&htpic_syscore);
 
 	return 0;
 
diff --git a/drivers/irqchip/irq-loongson-htvec.c b/drivers/irqchip/irq-loongson-htvec.c
index 5da02c7ad0b30..52952cca7c18c 100644
--- a/drivers/irqchip/irq-loongson-htvec.c
+++ b/drivers/irqchip/irq-loongson-htvec.c
@@ -159,7 +159,7 @@ static void htvec_reset(struct htvec *priv)
 	}
 }
 
-static int htvec_suspend(void)
+static int htvec_suspend(void *data)
 {
 	int i;
 
@@ -169,7 +169,7 @@ static int htvec_suspend(void)
 	return 0;
 }
 
-static void htvec_resume(void)
+static void htvec_resume(void *data)
 {
 	int i;
 
@@ -177,11 +177,15 @@ static void htvec_resume(void)
 		writel(htvec_priv->saved_vec_en[i], htvec_priv->base + HTVEC_EN_OFF + 4 * i);
 }
 
-static struct syscore_ops htvec_syscore_ops = {
+static const struct syscore_ops htvec_syscore_ops = {
 	.suspend = htvec_suspend,
 	.resume = htvec_resume,
 };
 
+static struct syscore htvec_syscore = {
+	.ops = &htvec_syscore_ops,
+};
+
 static int htvec_init(phys_addr_t addr, unsigned long size,
 		int num_parents, int parent_irq[], struct fwnode_handle *domain_handle)
 {
@@ -214,7 +218,7 @@ static int htvec_init(phys_addr_t addr, unsigned long size,
 
 	htvec_priv = priv;
 
-	register_syscore_ops(&htvec_syscore_ops);
+	register_syscore(&htvec_syscore);
 
 	return 0;
 
diff --git a/drivers/irqchip/irq-loongson-pch-lpc.c b/drivers/irqchip/irq-loongson-pch-lpc.c
index 912bf50a5c7ca..3a125f3e42873 100644
--- a/drivers/irqchip/irq-loongson-pch-lpc.c
+++ b/drivers/irqchip/irq-loongson-pch-lpc.c
@@ -151,7 +151,7 @@ static int pch_lpc_disabled(struct pch_lpc *priv)
 			(readl(priv->base + LPC_INT_STS) == 0xffffffff);
 }
 
-static int pch_lpc_suspend(void)
+static int pch_lpc_suspend(void *data)
 {
 	pch_lpc_priv->saved_reg_ctl = readl(pch_lpc_priv->base + LPC_INT_CTL);
 	pch_lpc_priv->saved_reg_ena = readl(pch_lpc_priv->base + LPC_INT_ENA);
@@ -159,18 +159,22 @@ static int pch_lpc_suspend(void)
 	return 0;
 }
 
-static void pch_lpc_resume(void)
+static void pch_lpc_resume(void *data)
 {
 	writel(pch_lpc_priv->saved_reg_ctl, pch_lpc_priv->base + LPC_INT_CTL);
 	writel(pch_lpc_priv->saved_reg_ena, pch_lpc_priv->base + LPC_INT_ENA);
 	writel(pch_lpc_priv->saved_reg_pol, pch_lpc_priv->base + LPC_INT_POL);
 }
 
-static struct syscore_ops pch_lpc_syscore_ops = {
+static const struct syscore_ops pch_lpc_syscore_ops = {
 	.suspend = pch_lpc_suspend,
 	.resume = pch_lpc_resume,
 };
 
+static struct syscore pch_lpc_syscore = {
+	.ops = &pch_lpc_syscore_ops,
+};
+
 int __init pch_lpc_acpi_init(struct irq_domain *parent,
 					struct acpi_madt_lpc_pic *acpi_pchlpc)
 {
@@ -222,7 +226,7 @@ int __init pch_lpc_acpi_init(struct irq_domain *parent,
 
 	pch_lpc_priv = priv;
 	pch_lpc_handle = irq_handle;
-	register_syscore_ops(&pch_lpc_syscore_ops);
+	register_syscore(&pch_lpc_syscore);
 
 	return 0;
 
diff --git a/drivers/irqchip/irq-loongson-pch-pic.c b/drivers/irqchip/irq-loongson-pch-pic.c
index 69efda35a8e78..75a256e83c5e9 100644
--- a/drivers/irqchip/irq-loongson-pch-pic.c
+++ b/drivers/irqchip/irq-loongson-pch-pic.c
@@ -278,7 +278,7 @@ static void pch_pic_reset(struct pch_pic *priv)
 	}
 }
 
-static int pch_pic_suspend(void)
+static int pch_pic_suspend(void *data)
 {
 	int i, j;
 
@@ -296,7 +296,7 @@ static int pch_pic_suspend(void)
 	return 0;
 }
 
-static void pch_pic_resume(void)
+static void pch_pic_resume(void *data)
 {
 	int i, j;
 
@@ -313,11 +313,15 @@ static void pch_pic_resume(void)
 	}
 }
 
-static struct syscore_ops pch_pic_syscore_ops = {
+static const struct syscore_ops pch_pic_syscore_ops = {
 	.suspend =  pch_pic_suspend,
 	.resume =  pch_pic_resume,
 };
 
+static struct syscore pch_pic_syscore = {
+	.ops = &pch_pic_syscore_ops,
+};
+
 static int pch_pic_init(phys_addr_t addr, unsigned long size, int vec_base,
 			struct irq_domain *parent_domain, struct fwnode_handle *domain_handle,
 			u32 gsi_base)
@@ -356,7 +360,7 @@ static int pch_pic_init(phys_addr_t addr, unsigned long size, int vec_base,
 	pch_pic_priv[nr_pics++] = priv;
 
 	if (nr_pics == 1)
-		register_syscore_ops(&pch_pic_syscore_ops);
+		register_syscore(&pch_pic_syscore);
 
 	return 0;
 
diff --git a/drivers/irqchip/irq-mchp-eic.c b/drivers/irqchip/irq-mchp-eic.c
index 8a5baa0987a4b..2ad3c1d02d523 100644
--- a/drivers/irqchip/irq-mchp-eic.c
+++ b/drivers/irqchip/irq-mchp-eic.c
@@ -109,7 +109,7 @@ static int mchp_eic_irq_set_wake(struct irq_data *d, unsigned int on)
 	return 0;
 }
 
-static int mchp_eic_irq_suspend(void)
+static int mchp_eic_irq_suspend(void *data)
 {
 	unsigned int hwirq;
 
@@ -123,7 +123,7 @@ static int mchp_eic_irq_suspend(void)
 	return 0;
 }
 
-static void mchp_eic_irq_resume(void)
+static void mchp_eic_irq_resume(void *data)
 {
 	unsigned int hwirq;
 
@@ -135,11 +135,15 @@ static void mchp_eic_irq_resume(void)
 			       MCHP_EIC_SCFG(hwirq));
 }
 
-static struct syscore_ops mchp_eic_syscore_ops = {
+static const struct syscore_ops mchp_eic_syscore_ops = {
 	.suspend = mchp_eic_irq_suspend,
 	.resume = mchp_eic_irq_resume,
 };
 
+static struct syscore mchp_eic_syscore = {
+	.ops = &mchp_eic_syscore_ops,
+};
+
 static struct irq_chip mchp_eic_chip = {
 	.name		= "eic",
 	.flags		= IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_SET_TYPE_MASKED,
@@ -256,7 +260,7 @@ static int mchp_eic_init(struct device_node *node, struct device_node *parent)
 		goto clk_unprepare;
 	}
 
-	register_syscore_ops(&mchp_eic_syscore_ops);
+	register_syscore(&mchp_eic_syscore);
 
 	pr_info("%pOF: EIC registered, nr_irqs %u\n", node, MCHP_EIC_NIRQ);
 
diff --git a/drivers/irqchip/irq-mst-intc.c b/drivers/irqchip/irq-mst-intc.c
index f6133ae281556..d771eb0346128 100644
--- a/drivers/irqchip/irq-mst-intc.c
+++ b/drivers/irqchip/irq-mst-intc.c
@@ -143,7 +143,7 @@ static void mst_intc_polarity_restore(struct mst_intc_chip_data *cd)
 		writew_relaxed(cd->saved_polarity_conf[i], addr + i * 4);
 }
 
-static void mst_irq_resume(void)
+static void mst_irq_resume(void *data)
 {
 	struct mst_intc_chip_data *cd;
 
@@ -151,7 +151,7 @@ static void mst_irq_resume(void)
 		mst_intc_polarity_restore(cd);
 }
 
-static int mst_irq_suspend(void)
+static int mst_irq_suspend(void *data)
 {
 	struct mst_intc_chip_data *cd;
 
@@ -160,14 +160,18 @@ static int mst_irq_suspend(void)
 	return 0;
 }
 
-static struct syscore_ops mst_irq_syscore_ops = {
+static const struct syscore_ops mst_irq_syscore_ops = {
 	.suspend	= mst_irq_suspend,
 	.resume		= mst_irq_resume,
 };
 
+static struct syscore mst_irq_syscore = {
+	.ops = &mst_irq_syscore_ops,
+};
+
 static int __init mst_irq_pm_init(void)
 {
-	register_syscore_ops(&mst_irq_syscore_ops);
+	register_syscore(&mst_irq_syscore);
 	return 0;
 }
 late_initcall(mst_irq_pm_init);
diff --git a/drivers/irqchip/irq-mtk-cirq.c b/drivers/irqchip/irq-mtk-cirq.c
index 76bc0283e3b96..889f014f0451a 100644
--- a/drivers/irqchip/irq-mtk-cirq.c
+++ b/drivers/irqchip/irq-mtk-cirq.c
@@ -199,7 +199,7 @@ static const struct irq_domain_ops cirq_domain_ops = {
 };
 
 #ifdef CONFIG_PM_SLEEP
-static int mtk_cirq_suspend(void)
+static int mtk_cirq_suspend(void *data)
 {
 	void __iomem *reg;
 	u32 value, mask;
@@ -257,7 +257,7 @@ static int mtk_cirq_suspend(void)
 	return 0;
 }
 
-static void mtk_cirq_resume(void)
+static void mtk_cirq_resume(void *data)
 {
 	void __iomem *reg = mtk_cirq_reg(cirq_data, CIRQ_CONTROL);
 	u32 value;
@@ -272,14 +272,18 @@ static void mtk_cirq_resume(void)
 	writel_relaxed(value, reg);
 }
 
-static struct syscore_ops mtk_cirq_syscore_ops = {
+static const struct syscore_ops mtk_cirq_syscore_ops = {
 	.suspend	= mtk_cirq_suspend,
 	.resume		= mtk_cirq_resume,
 };
 
+static struct syscore mtk_cirq_syscore = {
+	.ops = &mtk_cirq_syscore_ops,
+};
+
 static void mtk_cirq_syscore_init(void)
 {
-	register_syscore_ops(&mtk_cirq_syscore_ops);
+	register_syscore(&mtk_cirq_syscore);
 }
 #else
 static inline void mtk_cirq_syscore_init(void) {}
diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-renesas-rzg2l.c
index ac88d5aa46c22..72944e6a16589 100644
--- a/drivers/irqchip/irq-renesas-rzg2l.c
+++ b/drivers/irqchip/irq-renesas-rzg2l.c
@@ -399,7 +399,7 @@ static int rzg2l_irqc_set_type(struct irq_data *d, unsigned int type)
 	return irq_chip_set_type_parent(d, IRQ_TYPE_LEVEL_HIGH);
 }
 
-static int rzg2l_irqc_irq_suspend(void)
+static int rzg2l_irqc_irq_suspend(void *data)
 {
 	struct rzg2l_irqc_reg_cache *cache = &rzg2l_irqc_data->cache;
 	void __iomem *base = rzg2l_irqc_data->base;
@@ -411,7 +411,7 @@ static int rzg2l_irqc_irq_suspend(void)
 	return 0;
 }
 
-static void rzg2l_irqc_irq_resume(void)
+static void rzg2l_irqc_irq_resume(void *data)
 {
 	struct rzg2l_irqc_reg_cache *cache = &rzg2l_irqc_data->cache;
 	void __iomem *base = rzg2l_irqc_data->base;
@@ -426,11 +426,15 @@ static void rzg2l_irqc_irq_resume(void)
 	writel_relaxed(cache->iitsr, base + IITSR);
 }
 
-static struct syscore_ops rzg2l_irqc_syscore_ops = {
+static const struct syscore_ops rzg2l_irqc_syscore_ops = {
 	.suspend	= rzg2l_irqc_irq_suspend,
 	.resume		= rzg2l_irqc_irq_resume,
 };
 
+static struct syscore rzg2l_irqc_syscore = {
+	.ops = &rzg2l_irqc_syscore_ops,
+};
+
 static const struct irq_chip rzg2l_irqc_chip = {
 	.name			= "rzg2l-irqc",
 	.irq_eoi		= rzg2l_irqc_eoi,
@@ -590,7 +594,7 @@ static int rzg2l_irqc_common_init(struct device_node *node, struct device_node *
 		goto pm_put;
 	}
 
-	register_syscore_ops(&rzg2l_irqc_syscore_ops);
+	register_syscore(&rzg2l_irqc_syscore);
 
 	/*
 	 * Prevent the cleanup function from invoking put_device by assigning
diff --git a/drivers/irqchip/irq-sa11x0.c b/drivers/irqchip/irq-sa11x0.c
index 9d0b80271949d..141c3601d8a54 100644
--- a/drivers/irqchip/irq-sa11x0.c
+++ b/drivers/irqchip/irq-sa11x0.c
@@ -85,7 +85,7 @@ static struct sa1100irq_state {
 	unsigned int	iccr;
 } sa1100irq_state;
 
-static int sa1100irq_suspend(void)
+static int sa1100irq_suspend(void *data)
 {
 	struct sa1100irq_state *st = &sa1100irq_state;
 
@@ -102,7 +102,7 @@ static int sa1100irq_suspend(void)
 	return 0;
 }
 
-static void sa1100irq_resume(void)
+static void sa1100irq_resume(void *data)
 {
 	struct sa1100irq_state *st = &sa1100irq_state;
 
@@ -114,14 +114,18 @@ static void sa1100irq_resume(void)
 	}
 }
 
-static struct syscore_ops sa1100irq_syscore_ops = {
+static const struct syscore_ops sa1100irq_syscore_ops = {
 	.suspend	= sa1100irq_suspend,
 	.resume		= sa1100irq_resume,
 };
 
+static struct syscore sa1100irq_syscore = {
+	.ops = &sa1100irq_syscore_ops,
+};
+
 static int __init sa1100irq_init_devicefs(void)
 {
-	register_syscore_ops(&sa1100irq_syscore_ops);
+	register_syscore(&sa1100irq_syscore);
 	return 0;
 }
 
diff --git a/drivers/irqchip/irq-sifive-plic.c b/drivers/irqchip/irq-sifive-plic.c
index b58b3cd807d40..d57e9b25d0b4d 100644
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -250,7 +250,7 @@ static int plic_irq_set_type(struct irq_data *d, unsigned int type)
 	return IRQ_SET_MASK_OK;
 }
 
-static int plic_irq_suspend(void)
+static int plic_irq_suspend(void *data)
 {
 	unsigned int i, cpu;
 	unsigned long flags;
@@ -282,7 +282,7 @@ static int plic_irq_suspend(void)
 	return 0;
 }
 
-static void plic_irq_resume(void)
+static void plic_irq_resume(void *data)
 {
 	unsigned int i, index, cpu;
 	unsigned long flags;
@@ -313,11 +313,15 @@ static void plic_irq_resume(void)
 	}
 }
 
-static struct syscore_ops plic_irq_syscore_ops = {
+static const struct syscore_ops plic_irq_syscore_ops = {
 	.suspend	= plic_irq_suspend,
 	.resume		= plic_irq_resume,
 };
 
+static struct syscore plic_irq_syscore = {
+	.ops = &plic_irq_syscore_ops,
+};
+
 static int plic_irqdomain_map(struct irq_domain *d, unsigned int irq,
 			      irq_hw_number_t hwirq)
 {
@@ -683,7 +687,7 @@ static int plic_probe(struct fwnode_handle *fwnode)
 			cpuhp_setup_state(CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING,
 					  "irqchip/sifive/plic:starting",
 					  plic_starting_cpu, plic_dying_cpu);
-			register_syscore_ops(&plic_irq_syscore_ops);
+			register_syscore(&plic_irq_syscore);
 			plic_global_setup_done = true;
 		}
 	}
diff --git a/drivers/irqchip/irq-sun6i-r.c b/drivers/irqchip/irq-sun6i-r.c
index 99958d470d626..81e8342d1c9f2 100644
--- a/drivers/irqchip/irq-sun6i-r.c
+++ b/drivers/irqchip/irq-sun6i-r.c
@@ -268,7 +268,7 @@ static const struct irq_domain_ops sun6i_r_intc_domain_ops = {
 	.free		= irq_domain_free_irqs_common,
 };
 
-static int sun6i_r_intc_suspend(void)
+static int sun6i_r_intc_suspend(void *data)
 {
 	u32 buf[BITS_TO_U32(MAX(SUN6I_NR_TOP_LEVEL_IRQS, SUN6I_NR_MUX_BITS))];
 	int i;
@@ -284,7 +284,7 @@ static int sun6i_r_intc_suspend(void)
 	return 0;
 }
 
-static void sun6i_r_intc_resume(void)
+static void sun6i_r_intc_resume(void *data)
 {
 	int i;
 
@@ -294,17 +294,21 @@ static void sun6i_r_intc_resume(void)
 		writel_relaxed(0, base + SUN6I_IRQ_ENABLE(i));
 }
 
-static void sun6i_r_intc_shutdown(void)
+static void sun6i_r_intc_shutdown(void *data)
 {
-	sun6i_r_intc_suspend();
+	sun6i_r_intc_suspend(data);
 }
 
-static struct syscore_ops sun6i_r_intc_syscore_ops = {
+static const struct syscore_ops sun6i_r_intc_syscore_ops = {
 	.suspend	= sun6i_r_intc_suspend,
 	.resume		= sun6i_r_intc_resume,
 	.shutdown	= sun6i_r_intc_shutdown,
 };
 
+static struct syscore sun6i_r_intc_syscore = {
+	.ops = &sun6i_r_intc_syscore_ops,
+};
+
 static int __init sun6i_r_intc_init(struct device_node *node,
 				    struct device_node *parent,
 				    const struct sun6i_r_intc_variant *v)
@@ -346,10 +350,10 @@ static int __init sun6i_r_intc_init(struct device_node *node,
 		return -ENOMEM;
 	}
 
-	register_syscore_ops(&sun6i_r_intc_syscore_ops);
+	register_syscore(&sun6i_r_intc_syscore);
 
 	sun6i_r_intc_ack_nmi();
-	sun6i_r_intc_resume();
+	sun6i_r_intc_resume(NULL);
 
 	return 0;
 }
diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c
index ad3e2c1b3c87b..70ab4dc8f476a 100644
--- a/drivers/irqchip/irq-tegra.c
+++ b/drivers/irqchip/irq-tegra.c
@@ -132,7 +132,7 @@ static int tegra_set_wake(struct irq_data *d, unsigned int enable)
 	return 0;
 }
 
-static int tegra_ictlr_suspend(void)
+static int tegra_ictlr_suspend(void *data)
 {
 	unsigned long flags;
 	unsigned int i;
@@ -161,7 +161,7 @@ static int tegra_ictlr_suspend(void)
 	return 0;
 }
 
-static void tegra_ictlr_resume(void)
+static void tegra_ictlr_resume(void *data)
 {
 	unsigned long flags;
 	unsigned int i;
@@ -184,14 +184,18 @@ static void tegra_ictlr_resume(void)
 	local_irq_restore(flags);
 }
 
-static struct syscore_ops tegra_ictlr_syscore_ops = {
+static const struct syscore_ops tegra_ictlr_syscore_ops = {
 	.suspend	= tegra_ictlr_suspend,
 	.resume		= tegra_ictlr_resume,
 };
 
+static struct syscore tegra_ictlr_syscore = {
+	.ops = &tegra_ictlr_syscore_ops,
+};
+
 static void tegra_ictlr_syscore_init(void)
 {
-	register_syscore_ops(&tegra_ictlr_syscore_ops);
+	register_syscore(&tegra_ictlr_syscore);
 }
 #else
 #define tegra_set_wake	NULL
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index ea93e7236c4ac..e2076ea885cfa 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -120,7 +120,7 @@ static void resume_one_vic(struct vic_device *vic)
 	writel(~vic->soft_int, base + VIC_INT_SOFT_CLEAR);
 }
 
-static void vic_resume(void)
+static void vic_resume(void *data)
 {
 	int id;
 
@@ -146,7 +146,7 @@ static void suspend_one_vic(struct vic_device *vic)
 	writel(~vic->resume_irqs, base + VIC_INT_ENABLE_CLEAR);
 }
 
-static int vic_suspend(void)
+static int vic_suspend(void *data)
 {
 	int id;
 
@@ -156,11 +156,15 @@ static int vic_suspend(void)
 	return 0;
 }
 
-static struct syscore_ops vic_syscore_ops = {
+static const struct syscore_ops vic_syscore_ops = {
 	.suspend	= vic_suspend,
 	.resume		= vic_resume,
 };
 
+static struct syscore vic_syscore = {
+	.ops = &vic_syscore_ops,
+};
+
 /**
  * vic_pm_init - initcall to register VIC pm
  *
@@ -171,7 +175,7 @@ static struct syscore_ops vic_syscore_ops = {
 static int __init vic_pm_init(void)
 {
 	if (vic_id > 0)
-		register_syscore_ops(&vic_syscore_ops);
+		register_syscore(&vic_syscore);
 
 	return 0;
 }
diff --git a/drivers/leds/trigger/ledtrig-cpu.c b/drivers/leds/trigger/ledtrig-cpu.c
index 05848a2fecff6..679323c2ccda0 100644
--- a/drivers/leds/trigger/ledtrig-cpu.c
+++ b/drivers/leds/trigger/ledtrig-cpu.c
@@ -94,28 +94,32 @@ void ledtrig_cpu(enum cpu_led_event ledevt)
 }
 EXPORT_SYMBOL(ledtrig_cpu);
 
-static int ledtrig_cpu_syscore_suspend(void)
+static int ledtrig_cpu_syscore_suspend(void *data)
 {
 	ledtrig_cpu(CPU_LED_STOP);
 	return 0;
 }
 
-static void ledtrig_cpu_syscore_resume(void)
+static void ledtrig_cpu_syscore_resume(void *data)
 {
 	ledtrig_cpu(CPU_LED_START);
 }
 
-static void ledtrig_cpu_syscore_shutdown(void)
+static void ledtrig_cpu_syscore_shutdown(void *data)
 {
 	ledtrig_cpu(CPU_LED_HALTED);
 }
 
-static struct syscore_ops ledtrig_cpu_syscore_ops = {
+static const struct syscore_ops ledtrig_cpu_syscore_ops = {
 	.shutdown	= ledtrig_cpu_syscore_shutdown,
 	.suspend	= ledtrig_cpu_syscore_suspend,
 	.resume		= ledtrig_cpu_syscore_resume,
 };
 
+static struct syscore ledtrig_cpu_syscore = {
+	.ops = &ledtrig_cpu_syscore_ops,
+};
+
 static int ledtrig_online_cpu(unsigned int cpu)
 {
 	ledtrig_cpu(CPU_LED_START);
@@ -157,7 +161,7 @@ static int __init ledtrig_cpu_init(void)
 		led_trigger_register_simple(trig->name, &trig->_trig);
 	}
 
-	register_syscore_ops(&ledtrig_cpu_syscore_ops);
+	register_syscore(&ledtrig_cpu_syscore);
 
 	ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "leds/trigger:starting",
 				ledtrig_online_cpu, ledtrig_prepare_down_cpu);
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index b0f09c70f1ff8..5fe47e784d437 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -2600,7 +2600,7 @@ void pmu_blink(int n)
 #if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
 int pmu_sys_suspended;
 
-static int pmu_syscore_suspend(void)
+static int pmu_syscore_suspend(void *data)
 {
 	/* Suspend PMU event interrupts */
 	pmu_suspend();
@@ -2614,7 +2614,7 @@ static int pmu_syscore_suspend(void)
 	return 0;
 }
 
-static void pmu_syscore_resume(void)
+static void pmu_syscore_resume(void *data)
 {
 	struct adb_request req;
 
@@ -2634,14 +2634,18 @@ static void pmu_syscore_resume(void)
 	pmu_sys_suspended = 0;
 }
 
-static struct syscore_ops pmu_syscore_ops = {
+static const struct syscore_ops pmu_syscore_ops = {
 	.suspend = pmu_syscore_suspend,
 	.resume = pmu_syscore_resume,
 };
 
+static struct syscore pmu_syscore = {
+	.ops = &pmu_syscore_ops,
+};
+
 static int pmu_syscore_register(void)
 {
-	register_syscore_ops(&pmu_syscore_ops);
+	register_syscore(&pmu_syscore);
 
 	return 0;
 }
diff --git a/drivers/power/reset/sc27xx-poweroff.c b/drivers/power/reset/sc27xx-poweroff.c
index 90287c31992c4..393bd1c33b73b 100644
--- a/drivers/power/reset/sc27xx-poweroff.c
+++ b/drivers/power/reset/sc27xx-poweroff.c
@@ -28,7 +28,7 @@ static struct regmap *regmap;
  * taking cpus down to avoid racing regmap or spi mutex lock when poweroff
  * system through PMIC.
  */
-static void sc27xx_poweroff_shutdown(void)
+static void sc27xx_poweroff_shutdown(void *data)
 {
 #ifdef CONFIG_HOTPLUG_CPU
 	int cpu;
@@ -40,10 +40,14 @@ static void sc27xx_poweroff_shutdown(void)
 #endif
 }
 
-static struct syscore_ops poweroff_syscore_ops = {
+static const struct syscore_ops poweroff_syscore_ops = {
 	.shutdown = sc27xx_poweroff_shutdown,
 };
 
+static struct syscore poweroff_syscore = {
+	.ops = &poweroff_syscore_ops,
+};
+
 static void sc27xx_poweroff_do_poweroff(void)
 {
 	/* Disable the external subsys connection's power firstly */
@@ -62,7 +66,7 @@ static int sc27xx_poweroff_probe(struct platform_device *pdev)
 		return -ENODEV;
 
 	pm_power_off = sc27xx_poweroff_do_poweroff;
-	register_syscore_ops(&poweroff_syscore_ops);
+	register_syscore(&poweroff_syscore);
 	return 0;
 }
 
diff --git a/drivers/sh/clk/core.c b/drivers/sh/clk/core.c
index 7a73f5e4a1fc7..f02e12dfa5f64 100644
--- a/drivers/sh/clk/core.c
+++ b/drivers/sh/clk/core.c
@@ -569,7 +569,7 @@ long clk_round_rate(struct clk *clk, unsigned long rate)
 EXPORT_SYMBOL_GPL(clk_round_rate);
 
 #ifdef CONFIG_PM
-static void clks_core_resume(void)
+static void clks_core_resume(void *data)
 {
 	struct clk *clkp;
 
@@ -588,13 +588,17 @@ static void clks_core_resume(void)
 	}
 }
 
-static struct syscore_ops clks_syscore_ops = {
+static const struct syscore_ops clks_syscore_ops = {
 	.resume = clks_core_resume,
 };
 
+static struct syscore clks_syscore = {
+	.ops = &clks_syscore_ops,
+};
+
 static int __init clk_syscore_init(void)
 {
-	register_syscore_ops(&clks_syscore_ops);
+	register_syscore(&clks_syscore);
 
 	return 0;
 }
diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
index ea571eeb30787..3dde703b77668 100644
--- a/drivers/sh/intc/core.c
+++ b/drivers/sh/intc/core.c
@@ -394,7 +394,7 @@ int __init register_intc_controller(struct intc_desc *desc)
 	return -ENOMEM;
 }
 
-static int intc_suspend(void)
+static int intc_suspend(void *data)
 {
 	struct intc_desc_int *d;
 
@@ -420,7 +420,7 @@ static int intc_suspend(void)
 	return 0;
 }
 
-static void intc_resume(void)
+static void intc_resume(void *data)
 {
 	struct intc_desc_int *d;
 
@@ -450,11 +450,15 @@ static void intc_resume(void)
 	}
 }
 
-struct syscore_ops intc_syscore_ops = {
+static const struct syscore_ops intc_syscore_ops = {
 	.suspend	= intc_suspend,
 	.resume		= intc_resume,
 };
 
+static struct syscore intc_syscore = {
+	.ops = &intc_syscore_ops,
+};
+
 const struct bus_type intc_subsys = {
 	.name		= "intc",
 	.dev_name	= "intc",
@@ -477,7 +481,7 @@ static int __init register_intc_devs(void)
 	struct intc_desc_int *d;
 	int error;
 
-	register_syscore_ops(&intc_syscore_ops);
+	register_syscore(&intc_syscore);
 
 	error = subsys_system_register(&intc_subsys, NULL);
 	if (!error) {
diff --git a/drivers/soc/bcm/brcmstb/biuctrl.c b/drivers/soc/bcm/brcmstb/biuctrl.c
index 364ddbe365c24..bd830649b60dd 100644
--- a/drivers/soc/bcm/brcmstb/biuctrl.c
+++ b/drivers/soc/bcm/brcmstb/biuctrl.c
@@ -298,7 +298,7 @@ static int __init setup_hifcpubiuctrl_regs(struct device_node *np)
 #ifdef CONFIG_PM_SLEEP
 static u32 cpubiuctrl_reg_save[NUM_CPU_BIUCTRL_REGS];
 
-static int brcmstb_cpu_credit_reg_suspend(void)
+static int brcmstb_cpu_credit_reg_suspend(void *data)
 {
 	unsigned int i;
 
@@ -311,7 +311,7 @@ static int brcmstb_cpu_credit_reg_suspend(void)
 	return 0;
 }
 
-static void brcmstb_cpu_credit_reg_resume(void)
+static void brcmstb_cpu_credit_reg_resume(void *data)
 {
 	unsigned int i;
 
@@ -322,10 +322,14 @@ static void brcmstb_cpu_credit_reg_resume(void)
 		cbc_writel(cpubiuctrl_reg_save[i], i);
 }
 
-static struct syscore_ops brcmstb_cpu_credit_syscore_ops = {
+static const struct syscore_ops brcmstb_cpu_credit_syscore_ops = {
 	.suspend = brcmstb_cpu_credit_reg_suspend,
 	.resume = brcmstb_cpu_credit_reg_resume,
 };
+
+static struct syscore brcmstb_cpu_credit_syscore = {
+	.ops = &brcmstb_cpu_credit_syscore_ops,
+};
 #endif
 
 
@@ -354,7 +358,7 @@ static int __init brcmstb_biuctrl_init(void)
 	a72_b53_rac_enable_all(np);
 	mcp_a72_b53_set();
 #ifdef CONFIG_PM_SLEEP
-	register_syscore_ops(&brcmstb_cpu_credit_syscore_ops);
+	register_syscore(&brcmstb_cpu_credit_syscore);
 #endif
 	ret = 0;
 out_put:
diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index 0fdccd7362094..bed58b78d13dc 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -467,7 +467,7 @@ struct tegra_pmc {
 	unsigned long *wake_type_dual_edge_map;
 	unsigned long *wake_sw_status_map;
 	unsigned long *wake_cntrl_level_map;
-	struct syscore_ops syscore;
+	struct syscore syscore;
 };
 
 static struct tegra_pmc *pmc = &(struct tegra_pmc) {
@@ -3148,7 +3148,7 @@ static void tegra186_pmc_process_wake_events(struct tegra_pmc *pmc, unsigned int
 	}
 }
 
-static void tegra186_pmc_wake_syscore_resume(void)
+static void tegra186_pmc_wake_syscore_resume(void *data)
 {
 	u32 status, mask;
 	unsigned int i;
@@ -3161,7 +3161,7 @@ static void tegra186_pmc_wake_syscore_resume(void)
 	}
 }
 
-static int tegra186_pmc_wake_syscore_suspend(void)
+static int tegra186_pmc_wake_syscore_suspend(void *data)
 {
 	wke_read_sw_wake_status(pmc);
 
@@ -3180,6 +3180,11 @@ static int tegra186_pmc_wake_syscore_suspend(void)
 	return 0;
 }
 
+static const struct syscore_ops tegra186_pmc_wake_syscore_ops = {
+	.suspend = tegra186_pmc_wake_syscore_suspend,
+	.resume = tegra186_pmc_wake_syscore_resume,
+};
+
 #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_ARM)
 static int tegra_pmc_suspend(struct device *dev)
 {
@@ -3830,10 +3835,8 @@ static const struct tegra_pmc_regs tegra186_pmc_regs = {
 
 static void tegra186_pmc_init(struct tegra_pmc *pmc)
 {
-	pmc->syscore.suspend = tegra186_pmc_wake_syscore_suspend;
-	pmc->syscore.resume = tegra186_pmc_wake_syscore_resume;
-
-	register_syscore_ops(&pmc->syscore);
+	pmc->syscore.ops = &tegra186_pmc_wake_syscore_ops;
+	register_syscore(&pmc->syscore);
 }
 
 static void tegra186_pmc_setup_irq_polarity(struct tegra_pmc *pmc,
diff --git a/drivers/thermal/intel/intel_hfi.c b/drivers/thermal/intel/intel_hfi.c
index 5b18a46a10b06..e71cc0a11d01b 100644
--- a/drivers/thermal/intel/intel_hfi.c
+++ b/drivers/thermal/intel/intel_hfi.c
@@ -592,7 +592,7 @@ static void hfi_disable_instance(void *ptr)
 	hfi_disable();
 }
 
-static void hfi_syscore_resume(void)
+static void hfi_syscore_resume(void *data)
 {
 	/* This code runs only on the boot CPU. */
 	struct hfi_cpu_info *info = &per_cpu(hfi_cpu_info, 0);
@@ -603,7 +603,7 @@ static void hfi_syscore_resume(void)
 		hfi_enable_instance(hfi_instance);
 }
 
-static int hfi_syscore_suspend(void)
+static int hfi_syscore_suspend(void *data)
 {
 	/* No locking needed. There is no concurrency with CPU offline. */
 	hfi_disable();
@@ -611,11 +611,15 @@ static int hfi_syscore_suspend(void)
 	return 0;
 }
 
-static struct syscore_ops hfi_pm_ops = {
+static const struct syscore_ops hfi_pm_ops = {
 	.resume = hfi_syscore_resume,
 	.suspend = hfi_syscore_suspend,
 };
 
+static struct syscore hfi_pm = {
+	.ops = &hfi_pm_ops,
+};
+
 static int hfi_thermal_notify(struct notifier_block *nb, unsigned long state,
 			      void *_notify)
 {
@@ -710,7 +714,7 @@ void __init intel_hfi_init(void)
 	if (thermal_genl_register_notifier(&hfi_thermal_nb))
 		goto err_nl_notif;
 
-	register_syscore_ops(&hfi_pm_ops);
+	register_syscore(&hfi_pm);
 
 	return;
 
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index 520756159d3d3..8d1860bd5d578 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -492,7 +492,7 @@ static void xen_acpi_processor_resume_worker(struct work_struct *dummy)
 		pr_info("ACPI data upload failed, error = %d\n", rc);
 }
 
-static void xen_acpi_processor_resume(void)
+static void xen_acpi_processor_resume(void *data)
 {
 	static DECLARE_WORK(wq, xen_acpi_processor_resume_worker);
 
@@ -506,10 +506,14 @@ static void xen_acpi_processor_resume(void)
 	schedule_work(&wq);
 }
 
-static struct syscore_ops xap_syscore_ops = {
+static const struct syscore_ops xap_syscore_ops = {
 	.resume	= xen_acpi_processor_resume,
 };
 
+static struct syscore xap_syscore = {
+	.ops = &xap_syscore_ops,
+};
+
 static int __init xen_acpi_processor_init(void)
 {
 	int i;
@@ -560,7 +564,7 @@ static int __init xen_acpi_processor_init(void)
 	if (rc)
 		goto err_unregister;
 
-	register_syscore_ops(&xap_syscore_ops);
+	register_syscore(&xap_syscore);
 
 	return 0;
 err_unregister:
@@ -577,7 +581,7 @@ static void __exit xen_acpi_processor_exit(void)
 {
 	int i;
 
-	unregister_syscore_ops(&xap_syscore_ops);
+	unregister_syscore(&xap_syscore);
 	bitmap_free(acpi_ids_done);
 	bitmap_free(acpi_id_present);
 	bitmap_free(acpi_id_cst_present);
diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h
index ae4d48e4c970a..ac6d71be5c382 100644
--- a/include/linux/syscore_ops.h
+++ b/include/linux/syscore_ops.h
@@ -11,14 +11,19 @@
 #include <linux/list.h>
 
 struct syscore_ops {
+	int (*suspend)(void *data);
+	void (*resume)(void *data);
+	void (*shutdown)(void *data);
+};
+
+struct syscore {
 	struct list_head node;
-	int (*suspend)(void);
-	void (*resume)(void);
-	void (*shutdown)(void);
+	const struct syscore_ops *ops;
+	void *data;
 };
 
-extern void register_syscore_ops(struct syscore_ops *ops);
-extern void unregister_syscore_ops(struct syscore_ops *ops);
+extern void register_syscore(struct syscore *syscore);
+extern void unregister_syscore(struct syscore *syscore);
 #ifdef CONFIG_PM_SLEEP
 extern int syscore_suspend(void);
 extern void syscore_resume(void);
diff --git a/kernel/cpu_pm.c b/kernel/cpu_pm.c
index b0f0d15085db1..7481fbb947d32 100644
--- a/kernel/cpu_pm.c
+++ b/kernel/cpu_pm.c
@@ -173,7 +173,7 @@ int cpu_cluster_pm_exit(void)
 EXPORT_SYMBOL_GPL(cpu_cluster_pm_exit);
 
 #ifdef CONFIG_PM
-static int cpu_pm_suspend(void)
+static int cpu_pm_suspend(void *data)
 {
 	int ret;
 
@@ -185,20 +185,24 @@ static int cpu_pm_suspend(void)
 	return ret;
 }
 
-static void cpu_pm_resume(void)
+static void cpu_pm_resume(void *data)
 {
 	cpu_cluster_pm_exit();
 	cpu_pm_exit();
 }
 
-static struct syscore_ops cpu_pm_syscore_ops = {
+static const struct syscore_ops cpu_pm_syscore_ops = {
 	.suspend = cpu_pm_suspend,
 	.resume = cpu_pm_resume,
 };
 
+static struct syscore cpu_pm_syscore = {
+	.ops = &cpu_pm_syscore_ops,
+};
+
 static int cpu_pm_init(void)
 {
-	register_syscore_ops(&cpu_pm_syscore_ops);
+	register_syscore(&cpu_pm_syscore);
 	return 0;
 }
 core_initcall(cpu_pm_init);
diff --git a/kernel/irq/generic-chip.c b/kernel/irq/generic-chip.c
index 32ffcbb87fa12..a083f497fb0d3 100644
--- a/kernel/irq/generic-chip.c
+++ b/kernel/irq/generic-chip.c
@@ -664,7 +664,7 @@ static struct irq_data *irq_gc_get_irq_data(struct irq_chip_generic *gc)
 }
 
 #ifdef CONFIG_PM
-static int irq_gc_suspend(void)
+static int irq_gc_suspend(void *data)
 {
 	struct irq_chip_generic *gc;
 
@@ -684,7 +684,7 @@ static int irq_gc_suspend(void)
 	return 0;
 }
 
-static void irq_gc_resume(void)
+static void irq_gc_resume(void *data)
 {
 	struct irq_chip_generic *gc;
 
@@ -707,7 +707,7 @@ static void irq_gc_resume(void)
 #define irq_gc_resume NULL
 #endif
 
-static void irq_gc_shutdown(void)
+static void irq_gc_shutdown(void *data)
 {
 	struct irq_chip_generic *gc;
 
@@ -723,15 +723,19 @@ static void irq_gc_shutdown(void)
 	}
 }
 
-static struct syscore_ops irq_gc_syscore_ops = {
+static const struct syscore_ops irq_gc_syscore_ops = {
 	.suspend = irq_gc_suspend,
 	.resume = irq_gc_resume,
 	.shutdown = irq_gc_shutdown,
 };
 
+static struct syscore irq_gc_syscore = {
+	.ops = &irq_gc_syscore_ops,
+};
+
 static int __init irq_gc_init_ops(void)
 {
-	register_syscore_ops(&irq_gc_syscore_ops);
+	register_syscore(&irq_gc_syscore);
 	return 0;
 }
 device_initcall(irq_gc_init_ops);
diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
index c556bc49d2137..6337997411315 100644
--- a/kernel/irq/pm.c
+++ b/kernel/irq/pm.c
@@ -227,21 +227,26 @@ void rearm_wake_irq(unsigned int irq)
 
 /**
  * irq_pm_syscore_resume - enable interrupt lines early
+ * @data: syscore context
  *
  * Enable all interrupt lines with %IRQF_EARLY_RESUME set.
  */
-static void irq_pm_syscore_resume(void)
+static void irq_pm_syscore_resume(void *data)
 {
 	resume_irqs(true);
 }
 
-static struct syscore_ops irq_pm_syscore_ops = {
+static const struct syscore_ops irq_pm_syscore_ops = {
 	.resume		= irq_pm_syscore_resume,
 };
 
+static struct syscore irq_pm_syscore = {
+	.ops = &irq_pm_syscore_ops,
+};
+
 static int __init irq_pm_init_ops(void)
 {
-	register_syscore_ops(&irq_pm_syscore_ops);
+	register_syscore(&irq_pm_syscore);
 	return 0;
 }
 
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 37f1d4637d90c..1c5c26168cefd 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -3656,12 +3656,13 @@ static bool legacy_kthread_create(void)
 
 /**
  * printk_kthreads_shutdown - shutdown all threaded printers
+ * @data: syscore context
  *
  * On system shutdown all threaded printers are stopped. This allows printk
  * to transition back to atomic printing, thus providing a robust mechanism
  * for the final shutdown/reboot messages to be output.
  */
-static void printk_kthreads_shutdown(void)
+static void printk_kthreads_shutdown(void *data)
 {
 	struct console *con;
 
@@ -3683,10 +3684,14 @@ static void printk_kthreads_shutdown(void)
 	console_list_unlock();
 }
 
-static struct syscore_ops printk_syscore_ops = {
+static const struct syscore_ops printk_syscore_ops = {
 	.shutdown = printk_kthreads_shutdown,
 };
 
+static struct syscore printk_syscore = {
+	.ops = &printk_syscore_ops,
+};
+
 /*
  * If appropriate, start nbcon kthreads and set @printk_kthreads_running.
  * If any kthreads fail to start, those consoles are unregistered.
@@ -3753,7 +3758,7 @@ static void printk_kthreads_check_locked(void)
 
 static int __init printk_set_kthreads_ready(void)
 {
-	register_syscore_ops(&printk_syscore_ops);
+	register_syscore(&printk_syscore);
 
 	console_list_lock();
 	printk_kthreads_ready = true;
diff --git a/kernel/time/sched_clock.c b/kernel/time/sched_clock.c
index 68d6c1190ac7f..8aacdbde3a10b 100644
--- a/kernel/time/sched_clock.c
+++ b/kernel/time/sched_clock.c
@@ -283,6 +283,11 @@ int sched_clock_suspend(void)
 	return 0;
 }
 
+static int sched_clock_syscore_suspend(void *data)
+{
+	return sched_clock_suspend();
+}
+
 void sched_clock_resume(void)
 {
 	struct clock_read_data *rd = &cd.read_data[0];
@@ -292,14 +297,23 @@ void sched_clock_resume(void)
 	rd->read_sched_clock = cd.actual_read_sched_clock;
 }
 
-static struct syscore_ops sched_clock_ops = {
-	.suspend	= sched_clock_suspend,
-	.resume		= sched_clock_resume,
+static void sched_clock_syscore_resume(void *data)
+{
+	sched_clock_resume();
+}
+
+static const struct syscore_ops sched_clock_syscore_ops = {
+	.suspend	= sched_clock_syscore_suspend,
+	.resume		= sched_clock_syscore_resume,
+};
+
+static struct syscore sched_clock_syscore = {
+	.ops = &sched_clock_syscore_ops,
 };
 
 static int __init sched_clock_syscore_init(void)
 {
-	register_syscore_ops(&sched_clock_ops);
+	register_syscore(&sched_clock_syscore);
 
 	return 0;
 }
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 4d8927aeca974..626fbb2a1a8cf 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1868,6 +1868,11 @@ void timekeeping_resume(void)
 	timerfd_resume();
 }
 
+static void timekeeping_syscore_resume(void *data)
+{
+	timekeeping_resume();
+}
+
 int timekeeping_suspend(void)
 {
 	struct timekeeper *tk = &tk_core.timekeeper;
@@ -1937,15 +1942,24 @@ int timekeeping_suspend(void)
 	return 0;
 }
 
+static int timekeeping_syscore_suspend(void *data)
+{
+	return timekeeping_suspend();
+}
+
 /* sysfs resume/suspend bits for timekeeping */
-static struct syscore_ops timekeeping_syscore_ops = {
-	.resume		= timekeeping_resume,
-	.suspend	= timekeeping_suspend,
+static const struct syscore_ops timekeeping_syscore_ops = {
+	.resume		= timekeeping_syscore_resume,
+	.suspend	= timekeeping_syscore_suspend,
+};
+
+static struct syscore timekeeping_syscore = {
+	.ops = &timekeeping_syscore_ops,
 };
 
 static int __init timekeeping_init_ops(void)
 {
-	register_syscore_ops(&timekeeping_syscore_ops);
+	register_syscore(&timekeeping_syscore);
 	return 0;
 }
 device_initcall(timekeeping_init_ops);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index b2e76be087121..55ec5956c28b6 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -5662,7 +5662,7 @@ static int kvm_offline_cpu(unsigned int cpu)
 	return 0;
 }
 
-static void kvm_shutdown(void)
+static void kvm_shutdown(void *data)
 {
 	/*
 	 * Disable hardware virtualization and set kvm_rebooting to indicate
@@ -5680,7 +5680,7 @@ static void kvm_shutdown(void)
 	on_each_cpu(kvm_disable_virtualization_cpu, NULL, 1);
 }
 
-static int kvm_suspend(void)
+static int kvm_suspend(void *data)
 {
 	/*
 	 * Secondary CPUs and CPU hotplug are disabled across the suspend/resume
@@ -5697,7 +5697,7 @@ static int kvm_suspend(void)
 	return 0;
 }
 
-static void kvm_resume(void)
+static void kvm_resume(void *data)
 {
 	lockdep_assert_not_held(&kvm_usage_lock);
 	lockdep_assert_irqs_disabled();
@@ -5705,12 +5705,16 @@ static void kvm_resume(void)
 	WARN_ON_ONCE(kvm_enable_virtualization_cpu());
 }
 
-static struct syscore_ops kvm_syscore_ops = {
+static const struct syscore_ops kvm_syscore_ops = {
 	.suspend = kvm_suspend,
 	.resume = kvm_resume,
 	.shutdown = kvm_shutdown,
 };
 
+static struct syscore kvm_syscore = {
+	.ops = &kvm_syscore_ops,
+};
+
 int kvm_enable_virtualization(void)
 {
 	int r;
@@ -5727,7 +5731,7 @@ int kvm_enable_virtualization(void)
 	if (r)
 		goto err_cpuhp;
 
-	register_syscore_ops(&kvm_syscore_ops);
+	register_syscore(&kvm_syscore);
 
 	/*
 	 * Undo virtualization enabling and bail if the system is going down.
@@ -5749,7 +5753,7 @@ int kvm_enable_virtualization(void)
 	return 0;
 
 err_rebooting:
-	unregister_syscore_ops(&kvm_syscore_ops);
+	unregister_syscore(&kvm_syscore);
 	cpuhp_remove_state(CPUHP_AP_KVM_ONLINE);
 err_cpuhp:
 	kvm_arch_disable_virtualization();
@@ -5765,7 +5769,7 @@ void kvm_disable_virtualization(void)
 	if (--kvm_usage_count)
 		return;
 
-	unregister_syscore_ops(&kvm_syscore_ops);
+	unregister_syscore(&kvm_syscore);
 	cpuhp_remove_state(CPUHP_AP_KVM_ONLINE);
 	kvm_arch_disable_virtualization();
 }
-- 
2.53.0




  parent reply	other threads:[~2026-10-17 16:17 UTC|newest]

Thread overview: 875+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-17 15:47 [PATCH 6.12 000/869] 6.12.114-rc1 review Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 001/869] spi: mpc52xx: clean up interrupt handling Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 002/869] usb: gadget: f_hid: Add missing error code Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 003/869] iommu/amd: Disable AMD IOMMU if CMPXCHG16B feature is not supported Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 004/869] iommu/amd: Fix ivrs_base memleak in early_amd_iommu_init() Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 005/869] ice: fix use-after-free in dynamic port cleanup Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 006/869] xfs: stop exchanging reflink flags when exchanging mappings Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 007/869] xfs: fix exchange-range-to-eof file size exchange Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 008/869] ip6_gre: remove obsolete ERSPAN PMTU update Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 009/869] xfs: xfs_ifree_cluster vs xfs_iflush_shutdown_abort deadlock Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 010/869] xfs: catch stale AGF/AGF metadata Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 011/869] xfs: avoid dquot buffer pin deadlock Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 012/869] xfs: rearrange code in xfs_buf_item.c Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 013/869] xfs: factor out stale buffer item completion Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 014/869] xfs: fix unmount hang with unflushable inodes stuck in the AIL Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 015/869] drm/amd: Create a device link between APU display and XHCI devices Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 016/869] ata: libata-scsi: do not lose CHECK CONDITION for failed ATAPI commands Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 017/869] mm/mremap: fix locked_vm leak by splitting VMA for MREMAP_DONTUNMAP Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 018/869] mm/mremap: fix locked_vm leak from MREMAP_DONTUNMAP self-merge Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 019/869] wifi: mt76: connac: tolerate inactive BSS deactivation Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 020/869] net: team: Remove unused team_mode_op, port_enabled Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 021/869] net: team: Rename port_disabled team mode op to port_tx_disabled Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 022/869] net: team: fix NULL pointer dereference in team_xmit during mode change Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 023/869] net: team: stop reusing skb after queue override Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 024/869] sched_ext: Fix CPU hotplug hang when a dying CPUs tasks sit in the BPF scheduler Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 025/869] Bluetooth: hci_sync: Fix command skb lifetime during scan setup Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 026/869] Bluetooth: RFCOMM: connect the session socket without rfcomm_mutex Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 027/869] drm/vmwgfx: Stop using dev_private to store driver data Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 028/869] drm/vmwgfx: validate pitch coming from userspace Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 029/869] namespace: dont inherit MNT_UMOUNT in clone_mnt() Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 030/869] namespace: check the mounts before reading their parents in pivot_root() Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 031/869] dm-integrity: use internal variable for digestsize Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 032/869] dm-integrity: rename internal_hash Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 033/869] dm-integrity: fix buffer overflow in inline mode with large tag size Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 034/869] net: xilinx: axienet: Free outstanding DMA buffers on dmaengine stop Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 035/869] riscv: patch: Avoid early phys_to_page() Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 036/869] riscv: patch: fix handling of bpf-jit execmem addresses Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 037/869] scsi: ufs: core: Decouple CQ sweep from request iterator in MCQ Greg Kroah-Hartman
2026-10-17 15:47 ` [PATCH 6.12 038/869] scsi: ch: Do not keep references to data transfer element devices Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 039/869] scsi: ufs: core: Move an assignment in ufshcd_mcq_process_cqe() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 040/869] scsi: ufs: core: Add debug log for MCQ command timeout Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 041/869] scsi: ufs: core: Add a comment block above ufshcd_mcq_compl_all_cqes_lock() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 042/869] scsi: ufs: core: Avoid unsafe MMIO reads in ufshcd_mcq_compl_all_cqes_lock() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 043/869] drm/vc4: Use video aperture helpers Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 044/869] drm/vc4: Fix firmware reference leak in vc4_drm_bind() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 045/869] namespace: unhash a dentry before detaching the mounts on it Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 046/869] namespace: check the target before walking it in do_mount_setattr() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 047/869] fcntl: refuse F_SET_RW_HINT on an immutable inode Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 048/869] namespace: handle mount locking for automounts correctly Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 049/869] smb: client: improve compound padding in encryption Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 050/869] smb: client: get rid of bounds check in SMB2_ioctl_init() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 051/869] smb: client: fix compound alignment with encryption Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 052/869] um: work around sched_yield not yielding in time-travel mode Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 053/869] drm/i915/display: pass display to intel_crtc_for_pipe() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 054/869] drm/i915/vga: Convert VGA code to intel_display Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 055/869] drm/i915/display: convert I915_STATE_WARN() to struct intel_display Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 056/869] drm/i915/gmbus: convert " Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 057/869] drm/i915/crt: " Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 058/869] drm/i915: Grab intel_display from the encoder to avoid potential oopsies Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 059/869] ax25: Remove broken autobind Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 060/869] f2fs: quota: fix to avoid warning in dquot_writeback_dquots() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 061/869] RISC-V: KVM: Teardown riscv specific bits after kvm_exit Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 062/869] wifi: ath12k: fix struct hal_rx_phyrx_rssi_legacy_info Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 063/869] wifi: ath12k: fix incorrect TID updation in DP monitor status path Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 064/869] wifi: ath12k: Avoid explicit type cast in monitor status parse handler Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 065/869] wifi: ath12k: Avoid memory leak while enabling statistics Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 066/869] perf/dwc_pcie: Qualify RAS DES VSEC Capability by Vendor, Revision Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 067/869] perf/dwc_pcie: fix duplicate pci_dev devices Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 068/869] ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 069/869] kasan: avoid sleepable page allocation from atomic context Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 070/869] clk: sunxi-ng: h616: Reparent CPU clock during frequency changes Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 071/869] clk: sunxi-ng: h616: Reparent GPU " Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 072/869] net: ethernet: ti: am65-cpsw: streamline RX queue creation and cleanup Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 073/869] dmaengine: ti: k3-udma-glue: Drop skip_fdq argument from k3_udma_glue_reset_rx_chn Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 074/869] virtio: break and reset virtio devices on device_shutdown() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 075/869] coresight: holding cscfg_csdev_lock while removing cscfg from csdev Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 076/869] PCI/pwrctl: Use of_platform_device_create() to create pwrctl devices Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 077/869] PCI/pwrctl: Create pwrctl device only if at least one power supply is present Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 078/869] PCI/pwrctrl: Cancel outstanding rescan work when unregistering Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 079/869] drm/nouveau: fix a use-after-free in r535_gsp_rpc_push() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 080/869] wifi: ath12k: convert struct ath12k_sta::update_wk to use struct wiphy_work Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 081/869] wifi: ath12k: ath12k_mac_op_sta_state(): clean up update_wk cancellation Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 082/869] wifi: ath12k: prepare vif data structure for MLO handling Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 083/869] wifi: ath12k: Fix memory leak due to multiple rx_stats allocation Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 084/869] mm: fix uprobe pte be overwritten when expanding vma Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 085/869] riscv: Enable cbo.zero only when all harts support Zicboz Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 086/869] riscv: Add support for per-thread envcfg CSR values Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 087/869] riscv: save the SR_SUM status over switches Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 088/869] wifi: rtw89: pci: configure manual DAC mode via PCI config API only Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 089/869] s390/entry: Remove __GMAP_ASCE and use _PIF_GUEST_FAULT again Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 090/869] s390/kvm: Remove kvm_arch_fault_in_page() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 091/869] s390/mm/fault: Handle guest-related program interrupts in KVM Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 092/869] s390/mm: Simplify get_fault_type() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 093/869] s390/mm: Get rid of fault type switch statements Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 094/869] s390/mm: Fix in_atomic() handling in do_secure_storage_access() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 095/869] platform/x86/amd/pmf: Switch to platform_get_resource() and devm_ioremap_resource() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 096/869] platform/x86/amd: pmf: Use device managed allocations Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 097/869] drm/rockchip: vop2: Consistently use dev_err_probe() Greg Kroah-Hartman
2026-10-17 15:48 ` [PATCH 6.12 098/869] drm/rockchip: vop2: Register the primary plane and overlay plane separately Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 099/869] drm/rockchip: vop2: fail cleanly if missing a primary plane for a video-port Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 100/869] wifi: ath12k: Pass ab pointer directly to ath12k_dp_tx_get_encap_type() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 101/869] rv: Remove trailing whitespace from tracepoint string Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 102/869] rv: Use strings in da monitors tracepoints Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 103/869] wifi: iwlwifi: return ERR_PTR from opmode start() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 104/869] wifi: iwlwifi: Fix error code in iwl_op_mode_dvm_start() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 105/869] net/sched: Fix backlog accounting in qdisc_dequeue_internal Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 106/869] mm/mremap: fix WARN with uffd that has remap events disabled Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 107/869] crypto: x86/aegis128 - eliminate some indirect calls Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 108/869] crypto: x86/aegis128 - optimize length block preparation using SSE4.1 Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 109/869] crypto: x86/aegis128 - improve assembly function prototypes Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 110/869] crypto: x86/aegis - Fix sleeping when disallowed on PREEMPT_RT Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 111/869] crypto: x86/aegis - Add missing error checks Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 112/869] net/mlx5: HWS, denote how refcounts are protected Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 113/869] net/mlx5: HWS, simplify allocations as we support only FDB Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 114/869] net/mlx5: HWS, handle returned error value in pool alloc Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 115/869] net/mlx5: HWS, update flow - remove the use of dual RTCs Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 116/869] net/mlx5: HWS, Remove unused element array Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 117/869] net/mlx5: HWS, Make pool single resource Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 118/869] net/mlx5: HWS, Refactor pool implementation Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 119/869] net/mlx5: HWS, Fix memory leak in hws_pool_buddy_init error path Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 120/869] net/mlx5: HWS, Fix memory leak in hws_action_get_shared_stc_nic error flow Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 121/869] ptp: ocp: fix use-after-free bugs causing by ptp_ocp_watchdog Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 122/869] wifi: mt76: mt7915: fix list corruption after hardware restart Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 123/869] mm/vmalloc, mm/kasan: respect gfp mask in kasan_populate_vmalloc() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 124/869] smb: client: let recv_done verify data_offset, data_length and remaining_data_length Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 125/869] iommu/s390: handle IOAT registration based on domain Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 126/869] iommu/s390: set appropriate IOTA region type Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 127/869] iommu/s390: Make attach succeed when the device was surprise removed Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 128/869] RISC-V: KVM: Write hgatp register with valid mode bits Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 129/869] drm/xe: Dont allow evicting of BOs in same VM in array of VM binds Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 130/869] remoteproc: Switch back to struct platform_driver::remove() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 131/869] remoteproc: qcom: pas: Make remoteproc name human friendly Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 132/869] remoteproc: qcom_q6v5_pas: Simplify with dev_err_probe() Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 133/869] remoteproc: qcom: pas: Conclude the rename from adsp Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 134/869] remoteproc: qcom: pas: Shutdown lite ADSP DTB on X1E Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 135/869] scsi: ufs: core: Fix data race in CPU latency PM QoS request handling Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 136/869] crypto: hisilicon/hpre - enable all clusters clock gating Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 137/869] crypto: hisilicon/qm - request reserved interrupt for virtual function Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 138/869] ASoC: Intel: avs: Use topology information for endpoint numbers Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 139/869] ASoC: Intel: avs: Do not share the name pointer between components Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 140/869] sysfs: check visibility before changing group attribute ownership Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 141/869] amd/amdkfd: enhance kfd process check in switch partition Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 142/869] drm/xe/guc: Add devm release action to safely tear down CT Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 143/869] RDMA/mlx5: Remove the redundant MLX5_IB_STAGE_UAR stage Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 144/869] net/mlx5: HWS, fix bad parameter in CQ creation Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 145/869] net/mlx5: Fix typo of MLX5_EQ_DOORBEL_OFFSET Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 146/869] net/mlx5: Store the global doorbell in mlx5_priv Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 147/869] net/mlx5e: Prepare for using different CQ doorbells Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 148/869] mlx5: Fix default values in create CQ Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 149/869] scsi: ufs: qcom : Refactor phy_power_on/off calls Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 150/869] scsi: ufs: ufs-qcom: Fix UFS OCP issue during UFS power down (PC=3) Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 151/869] clk: thead: th1520-ap: set all AXI clocks to CLK_IS_CRITICAL Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 152/869] netconsole: Acquire su_mutex before navigating configs hierarchy Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 153/869] net: vxlan: prevent NULL deref in vxlan_xmit_one Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 154/869] btrfs: fix double free of qgroup record after failure to add delayed ref head Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 155/869] wifi: mt76: wed: use proper wed reference in mt76 wed driver callabacks Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 156/869] md: init bioset in mddev_init Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 157/869] coresight-tmc: change tmc_drvdata spinlocks type to raw_spinlock_t Greg Kroah-Hartman
2026-10-17 15:49 ` [PATCH 6.12 158/869] coresight: ETR: Fix ETR buffer use-after-free issue Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 159/869] wifi: ath12k: Fix MSDU buffer types handling in RX error path Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 160/869] accel/ivpu: Allow to import single buffer into multiple contexts Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 161/869] accel/ivpu: Rework bind/unbind of imported buffers Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 162/869] accel/ivpu: Fix page fault in ivpu_bo_unbind_all_bos_from_context() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 163/869] drm/panthor: Prevent potential UAF in group creation Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 164/869] scsi: qla2xxx: Clear cmds after chip reset Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 165/869] s390/fpu: Fix false-positive kmsan report in fpu_vstl() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 166/869] staging: most: remove broken i2c driver Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 167/869] wifi: mac80211: fix typo in HE MCS check Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 168/869] wifi: mac80211: log link information in ieee80211_determine_chan_mode Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 169/869] wifi: mac80211: dont WARN for connections on invalid channels Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 170/869] accel/qaic: Add config structs for supported cards Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 171/869] net: qrtr: Drop the MHI auto_queue feature for IPCR DL channels Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 172/869] PCI: endpoint: Add missing NULL check for alloc_workqueue() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 173/869] bpf: Mark bpf_refcount field as unique Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 174/869] staging: rtl8723bs: fix xmit_frame/xmit_buf leaks on mgnt-frame error paths Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 175/869] drm/msm: Recover HW before retire hung submit Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 176/869] block: zero non-PI portion of auto integrity buffer Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 177/869] idpf: fix error handling in the init_task on load Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 178/869] stddef: Introduce TRAILING_OVERLAP() helper macro Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 179/869] virtio_net: Fix misalignment bug in struct virtnet_info Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 180/869] ALSA: usb-audio: Prevent excessive number of frames Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 181/869] riscv: trace: fix snapshot deadlock with sbi ecall Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 182/869] io_uring/rw: free potentially allocated iovec on cache put failure Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 183/869] cxl/mbox: validate payload size before accessing contents in cxl_payload_from_user_allowed() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 184/869] sched/deadline: Fix missing ENQUEUE_REPLENISH during PI de-boosting Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 185/869] ice: change XDP RxQ frag_size from DMA write length to xdp.frame_sz Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 186/869] netfilter: nf_tables: clone set on flush only Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 187/869] serial: rename local uart_port_lock() -> uart_port_ref_lock() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 188/869] serial: core: fix infinite loop in handle_tx() for PORT_UNKNOWN Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 189/869] RDMA/efa: Fix use of completion ctx after free Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 190/869] bpf: Fix exception exit lock checking for subprogs Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 191/869] drm/mediatek: dsi: Store driver data before invoking mipi_dsi_host_register Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 192/869] s390/mm: Add missing secure storage access fixups for donated memory Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 193/869] dm: limit swapping tables for devices with zone write plugs Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 194/869] drm/tilcdc: Fix removal actions in case of failed probe Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 195/869] net: Factorise setup_net() and cleanup_net() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 196/869] net: Add ops_undo_single for module load/unload Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 197/869] net: Add ->exit_rtnl() hook to struct pernet_operations Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 198/869] wireguard: device: use exit_rtnl callback instead of manual rtnl_lock in pre_exit Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 199/869] KVM: SEV: Use long-term pin when registering encrypted memory regions Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 200/869] KVM: SEV: Protect *all* of sev_mem_enc_register_region() with kvm->lock Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 201/869] rxrpc: proc: size address buffers for %pISpc output Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 202/869] Bluetooth: hci_event: move wake reason storage into validated event handlers Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 203/869] ALSA: ctxfi: Add hw parameter to daio_mgr_dao_init() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 204/869] ALSA: ctxfi: Use explicit output flag for DAIO resources Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 205/869] ALSA: ctxfi: Refactor resource alloc for sparse mappings Greg Kroah-Hartman
2026-10-17 17:10   ` Harin Lee
2026-10-17 15:50 ` [PATCH 6.12 206/869] ALSA: ctxfi: Check the error for index mapping Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 207/869] bpf: Factor out atomic_ptr_type_ok() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 208/869] bpf: Factor out check_atomic_rmw() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 209/869] bpf: Factor out check_load_mem() and check_store_reg() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 210/869] bpf: Fix incorrect pruning due to atomic fetch precision tracking Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 211/869] Bluetooth: hci_sync: hci_cmd_sync_queue_once() return -EEXIST if exists Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 212/869] mptcp: move the whole rx path under msk socket lock protection Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 213/869] mptcp: cleanup mem accounting Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 214/869] mptcp: leverage skb deferral free Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 215/869] mptcp: add eat_recv_skb helper Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 216/869] mptcp: fix soft lockup in mptcp_recvmsg() Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 217/869] bnxt_en: Update firmware interface spec to 1.10.3.85 Greg Kroah-Hartman
2026-10-17 15:50 ` [PATCH 6.12 218/869] bnxt_en: set backing store type from query type Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 219/869] mpls: Hold dev refcnt for mpls_nh Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 220/869] mpls: Unify return paths in mpls_dev_notify() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 221/869] mpls: Add mpls_dev_rcu() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 222/869] mpls: Pass net to mpls_dev_get() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 223/869] mpls: Add mpls_route_input() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 224/869] mpls: Convert mpls_dump_routes() to RCU Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 225/869] mpls: Protect net->mpls.platform_label with a per-netns mutex Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 226/869] mpls: add seqcount to protect the platform_label{,s} pair Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 227/869] HID: core: Add reserved item tag for main items Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 228/869] HID: rate-limit hid_warn to prevent log flooding Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 229/869] HID: core: Mitigate potential OOB by removing bogus memset() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 230/869] xfs: remove bp->b_error check in xfs_attr3_root_inactive Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 231/869] xfs: factor out xfs_attr3_node_entry_remove Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 232/869] xfs: close crash window in attr dabtree inactivation Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 233/869] net: ioam6: fix OOB and missing lock Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 234/869] ipv6: ioam: fix potential NULL dereferences in __ioam6_fill_trace_data() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 235/869] srcu: Use irq_work to start GP in tiny SRCU Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 236/869] btrfs: tree-log: dont use token set/get accessors in fill_inode_item() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 237/869] btrfs: fix zero size inode with non-zero size after log replay Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 238/869] fs/ntfs3: Accumulated refactoring changes Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 239/869] ntfs3: fix circular locking dependency in run_unpack_ex Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 240/869] wifi: iwlwifi: fix 22000 series SMEM parsing Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 241/869] ksmbd: fix signededness bug in smb_direct_prepare_negotiation() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 242/869] drm/amd/display: Adjust PHY FSM transition to TX_EN-to-PLL_ON for TMDS on DCN35 Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 243/869] ASoC: qcom: q6asm: handle the responses after closing Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 244/869] ASoC: qcom: q6asm: drop DSP responses for closed data streams Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 245/869] wifi: rtw89: pci: validate sequence number of TX release report Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 246/869] team: avoid NETDEV_CHANGEMTU event when unregistering slave Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 247/869] media: chips-media: wave5: Fix Null reference while testing fluster Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 248/869] ring-buffer: Fix possible dereference of uninitialized pointer Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 249/869] drm: renesas: rz-du: mipi_dsi: fix kernel panic when rebooting for some panels Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 250/869] drm/amdgpu: Skip vcn poison irq release on VF Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 251/869] btrfs: do not ASSERT() when the fs flips RO inside btrfs_repair_io_failure() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 252/869] btrfs: remove reserved argument from btrfs_pin_extent() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 253/869] btrfs: dont BUG() on unexpected delayed ref type in run_one_delayed_ref() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 254/869] md raid: fix hang when stopping arrays with metadata through dm-raid Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 255/869] media: v4l2-mem2mem: Add a kref to the v4l2_m2m_dev structure Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 256/869] media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 257/869] KVM: Export hardware virtualization enabling/disabling functions Greg Kroah-Hartman
2026-10-17 15:51 ` Greg Kroah-Hartman [this message]
2026-10-17 15:51 ` [PATCH 6.12 259/869] soc/tegra: pmc: Fix unsafe generic_handle_irq() call Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 260/869] wifi: iwlwifi: mvm: dont send a 6E related command when not supported Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 261/869] drm/amd/display: Fix NULL pointer dereference in dcn401_init_hw() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 262/869] ice: ptp: dont WARN when controlling PF is unavailable Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 263/869] i3c: mipi-i3c-hci: Correct RING_CTRL_ABORT handling in DMA dequeue Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 264/869] i3c: mipi-i3c-hci: Fix race in DMA ring dequeue Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 265/869] scsi: qla2xxx: Completely fix fcport double free Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 266/869] ASoC: amd: acp-mach-common: Add missing error check for clock acquisition Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 267/869] rxrpc: kdoc: Update function descriptions and add link from rxrpc.rst Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 268/869] rxrpc, afs: Fix missing error pointer check after rxrpc_kernel_lookup_peer() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 269/869] net/mlx5e: RX, Fix XDP multi-buf frag counting for legacy RQ Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 270/869] net/mlx5e: RX, Fix XDP multi-buf frag counting for striding RQ Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 271/869] nouveau/gsp: drop WARN_ON in ACPI probes Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 272/869] bpf: Fix tcx/netkit detach permissions when prog fd isnt given Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 273/869] btrfs: fix EEXIST abort due to non-consecutive gaps in chunk allocation Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 274/869] net: stmmac: fix oops when split header is enabled Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 275/869] drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl() Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 276/869] gfs2: fix memory leaks in gfs2_fill_super error path Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 277/869] KVM: SVM: Add missing save/restore handling of LBR MSRs Greg Kroah-Hartman
2026-10-17 15:51 ` [PATCH 6.12 278/869] ipmi:ssif: Clean up kthread on errors Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 279/869] KVM: x86: Rename "governed features" helpers to use "guest_cpu_cap" Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 280/869] KVM: nSVM: Always use NextRIP as vmcb02s NextRIP after first L2 VMRUN Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 281/869] ceph: Remove call to PagePrivate2() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 282/869] ceph: extend ceph_writeback_ctl for ceph_writepages_start() refactoring Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 283/869] ceph: introduce ceph_process_folio_batch() method Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 284/869] ceph: Remove uses of page from ceph_process_folio_batch() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 285/869] ceph: fix num_ops off-by-one when crypto allocation fails Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 286/869] KVM: nSVM: Avoid clearing VMCB_LBR in vmcb12 Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 287/869] dm-verity-fec: fix reading parity bytes split across blocks (take 3) Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 288/869] spi: microchip-core-qspi: Support per spi-mem operation frequency switches Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 289/869] spi: microchip-core-qspi: set min_speed_hz during probe Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 290/869] spi: microchip-core-qspi: remove unused param from mchp_coreqspi_write_op() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 291/869] spi: microchip-core-qspi: control built-in cs manually Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 292/869] riscv: kvm: fix vector context allocation leak Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 293/869] f2fs: fix fsck inconsistency caused by FGGC of node block Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 294/869] refcount: provide ops for cases when objects memory can be reused Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 295/869] RDMA/mlx4: Fix mis-use of RCU in mlx4_srq_event() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 296/869] spi: ch341: switch to use devm_spi_alloc_host() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 297/869] spi: ch341: fix devres lifetime Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 298/869] drm/amd/display: Fix dc_link NULL handling in HPD init Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 299/869] NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 300/869] coresight: tmc-etr: Fix race condition between sysfs and perf mode Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 301/869] selinux: allow multiple opens of /sys/fs/selinux/policy Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 302/869] netfilter: nf_tables: use list_del_rcu for netlink hooks Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 303/869] RDMA/rxe: Move some code to rxe_loc.h in preparation for ODP Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 304/869] RDMA/rxe: Fix iova-to-va conversion for MR page sizes != PAGE_SIZE Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 305/869] Revert "net/smc: Introduce TCP ULP support" Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 306/869] tap: fix stack info leak in tap_ioctl() SIOCGIFHWADDR Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 307/869] libceph: Fix potential out-of-bounds access in __ceph_x_decrypt() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 308/869] net: airoha: fix BQL imbalance in TX path Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 309/869] sched/psi: fix race between file release and pressure write Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 310/869] netfilter: nat: use kfree_rcu to release ops Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 311/869] ice: fix double-free of tx_buf skb Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 312/869] f2fs: fix data loss caused by incorrect use of nat_entry flag Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 313/869] f2fs: avoid reading already updated pages during GC Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 314/869] greybus: raw: fix use-after-free on cdev close Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 315/869] net: pull headers in qdisc_pkt_len_segs_init() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 316/869] wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 317/869] wifi: mt76: Fix memory leak destroying device Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 318/869] powerpc/64s: Fix unmap race with PMD migration entries Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 319/869] powerpc/pgtable-frag: Fix bad page state in pte_frag_destroy Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 320/869] vdpa: use generic driver_override infrastructure Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 321/869] staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 322/869] sctp: validate embedded INIT chunk and address list lengths in cookie Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 323/869] wifi: fix leak if split 6 GHz scanning fails Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 324/869] KVM: arm64: Take the SRCU lock for page table walks in fault injection and AT emulation Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 325/869] iommu/vt-d: Avoid NULL pointer dereference or refcount corruption Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 326/869] btrfs: only release the dirty pages io tree after successful writes Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 327/869] drm/amd/display: Wrap DCN32 phantom-plane allocation in DC_RUN_WITH_PREEMPTION_ENABLED Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 328/869] net: phonet: do not BUG_ON() in pn_socket_autobind() on failed bind Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 329/869] net: mana: Guard mana_remove against double invocation Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 330/869] io_uring/napi: protect concurrent io_napi_entry timeout accesses Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 331/869] io_uring/napi: improve __io_napi_add Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 332/869] io_uring/napi: Use lock guards Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 333/869] io_uring/napi: clean up __io_napi_do_busy_loop Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 334/869] io_uring/napi: cap busy_poll_to 10 msec Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 335/869] drm/amd/display: Fix out-of-bounds read in dp_get_eq_aux_rd_interval() Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 336/869] f2fs: fix fsck inconsistency caused by incorrect nat_entry flag usage Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 337/869] drm/msm: always recover the gpu Greg Kroah-Hartman
2026-10-17 15:52 ` [PATCH 6.12 338/869] fbdev: omap2: fix inconsistent lock returns in omapfb_mmap Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 339/869] fbdev: omap2: fix use-after-free " Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 340/869] f2fs: read COW data with the original inode during atomic write Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 341/869] gcov: use atomic counter updates to fix concurrent access crashes Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 342/869] wifi: mt76: add wcid publish check in mt76_sta_add Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 343/869] drm/amdgpu/vcn: set no_user_fence for VCN v4.0 enc ring Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 344/869] net: airoha: Do not read uninitialized fragment address in airoha_dev_xmit() Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 345/869] net: airoha: Add missing bits in airoha_qdma_cleanup_tx_queue() Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 346/869] drm/amdgpu: fix amdgpu_hmm_range_get_pages Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 347/869] net/handshake: hand off the pinned file reference to accept_doit Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 348/869] ethtool: module: call ethnl_ops_complete() on module flash errors Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 349/869] ethtool: rss: fix indir_table and hkey leak on get_rxfh failure Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 350/869] netfilter: nf_tables: fix dst corruption in same register operation Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 351/869] tcp: Remove sk->sk_prot->orphan_count Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 352/869] tcp: fix stale per-CPU tcp_tw_isn leak enabling ISN prediction Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 353/869] cgroup/rstat: validate cpu before css_rstat_cpu() access Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 354/869] hwmon: (lm90) Stop work before releasing hwmon device Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 355/869] netfs: Fix leak of request in netfs_write_begin() error handling Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 356/869] netfs: Fix missing locking around retry adding new subreqs Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 357/869] netfilter: bridge: eb_tables: close module init race Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 358/869] netfilter: ebtables: move to two-stage removal scheme Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 359/869] netfilter: x_tables: allow initial table replace without emitting audit log message Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 360/869] netfilter: x_tables: allocate hook ops while under mutex Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 361/869] wifi: mac80211: fix missing RX bitrate update for mesh forwarding path Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 362/869] wifi: mac80211: capture fast-RX rate before mesh reuses skb->cb Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 363/869] erofs: fix metabuf leak in inode xattr initialization Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 364/869] drm/msm/adreno: Fix a reference leak in a6xx_gpu_init() Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 365/869] netfs: Fix zeropoint update where i_size > remote_i_size Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 366/869] hwmon: (lm90) Add lock protection to lm90_alert Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 367/869] KVM: guest_memfd: Treat memslot binding offset+size as unsigned values Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 368/869] smb/client: fix chown/chgrp with SMB3 POSIX Extensions Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 369/869] ksmbd: validate NTLMv2 response before updating session key Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 370/869] ksmbd: prevent path traversal bypass by restricting caseless retry Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 371/869] KVM: x86: Drop superfluous kvm_lapic_set_base() call when setting APIC state Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 372/869] KVM: x86: Move kvm_set_apic_base() implementation to lapic.c (from x86.c) Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 373/869] KVM: x86: Rename APIC base setters to better capture their relationship Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 374/869] KVM: x86: Move update_cr8_intercept() to lapic.c Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 375/869] KVM: x86: Unconditionally recompute CR8 intercept on PPR update Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 376/869] KVM: nVMX: Put vmcs12 pages if nested VM-Enter fails due to invalid guest state Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 377/869] drm/amdgpu: Fix kernel panic during driver load failure Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 378/869] media: stm32: dcmipp: use v4l2_subdev_is_streaming Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 379/869] media: stm32: dcmipp: replace s_stream with enable/disable_streams Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 380/869] media: stm32-dcmipp: Return queued buffers on start_streaming() failure Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 381/869] drm/vc4: Shut down BO cache timer before teardown Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 382/869] drm/amdgpu: Use dbg level for VBIOS check messages Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 383/869] drm/amdgpu: Add wrapper for freeing vbios memory Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 384/869] drm/amdgpu: Release VFCT ACPI table reference Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 385/869] drm/i915/mst: limit DP MST ESI service loop Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 386/869] drm/i915/gt: Fix NULL deref on sched_engine alloc failure Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 387/869] drm/amdkfd: Check bounds on CRIU restore queue type and mqd size Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 388/869] idpf: fix max_vport related crash on allocation error during init Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 389/869] LoongArch: BPF: Zero-extend signed ALU32 div/mod results Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 390/869] cifs: prevent readdir from changing file size due to stale directory metadata Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 391/869] cifs: fix cifsFileInfo leak on kmalloc failure in deferred close drain paths Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 392/869] tipc: serialize udp bearer replicast list updates Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 393/869] fwctl/bnxt_en: Refactor aux bus functions to be more generic Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 394/869] bnxt_en: Handle partially initialized auxiliary devices Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 395/869] drm/xe/guc: Keep scheduler timeline name alive Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 396/869] Bluetooth: hci_sync: extend conn_hash lookup critical sections Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 397/869] bpf: Disable migration when destroying sock storage Greg Kroah-Hartman
2026-10-17 15:53 ` [PATCH 6.12 398/869] bpf: Disable migration when cloning " Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 399/869] rcu: add rcu_read_lock_dont_migrate() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 400/869] bpf: Use rcu_read_lock_dont_migrate in bpf_sk_storage.c Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 401/869] bpf: Fix UAF in sock clone early bailouts Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 402/869] firmware: arm_ffa: Fix out-of-bound writes in ffa_setup_and_transmit() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 403/869] wifi: cfg80211: use wiphy work for socket owner autodisconnect Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 404/869] wifi: mac80211: refactor populating mesh related fields in sinfo Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 405/869] wifi: cfg80211: add link_station_info structure to support MLO statistics Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 406/869] wifi: mac80211: defer link RX stats percpu free to RCU Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 407/869] wifi: cfg80211: Fix an error handling path in cfg80211_wext_siwscan() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 408/869] RDMA/irdma: Prevent user-triggered null deref on QP create Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 409/869] sched_ext: Dont warn on core-sched forced idle in put_prev_task_scx() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 410/869] xfrm: fix stale skb->prev after async crypto steals a GSO segment Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 411/869] LoongArch: Fix address space mismatch in kexec command line lookup Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 412/869] drm/amd/display: use kvzalloc to allocate struct dc Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 413/869] net/sched: Handle TC_ACT_REDIRECT from qdisc filter chains Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 414/869] drm/amdkfd: clamp v9 CRIU control stack checkpoint copy to BO size Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 415/869] ovl: check access to copy_file_range source with src mounter creds Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 416/869] s390/zcrypt: Fix buffer over-read in cca_cipher2protkey Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 417/869] wifi: mac80211: validate extension-frame layout before RX Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 418/869] wifi: ieee80211: validate MLE common info length Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 419/869] ata: libata-core: Disable LPM on Silicon Motion MD619{H,G}XCLDE3TC Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 420/869] ata: libata-core: Add NOLPM quirk for PNY CS900 1TB SSD Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 421/869] mmc: vub300: Use devm_mmc_alloc_host() helper Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 422/869] mmc: vub300: fix use-after-free on disconnect Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 423/869] mmc: vub300: rename probe error labels Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 424/869] mmc: vub300: fix use-after-free on probe failure Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 425/869] dm-verity: fix buffer overflow in FEC calculation Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 426/869] ocfs2: correct l_next_free_rec in online check Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 427/869] ocfs2: add suballoc slot check in ocfs2_validate_inode_block() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 428/869] ocfs2: add extra consistency checks for chain allocator dinodes Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 429/869] ocfs2: validate i_refcount_loc when refcount flag is set Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 430/869] ocfs2: fix UBSAN array-index-out-of-bounds in ocfs2_sum_rightmost_rec Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 431/869] KVM: arm64: vgic: Handle race between interrupt affinity change and LPI disabling Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 432/869] ipv4: igmp: Fix potential memory leaks in igmp_mod_timer() and igmp_stop_timer() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 433/869] net/liquidio: drop cached VF pci_dev LUT Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 434/869] Bluetooth: 6lowpan: avoid untracked enable work Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 435/869] net/mlx5e: Fix publication race for priv->channel_stats[] Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 436/869] netfs: Clean up some whitespace in trace header Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 437/869] netfs: Use a folio_queue allocation and free functions Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 438/869] netfs: Add a tracepoint to log the lifespan of folio_queue structs Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 439/869] netfs: Abstract out a rolling folio buffer implementation Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 440/869] netfs: Drop the was_async arg from netfs_read_subreq_terminated() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 441/869] netfs: Fix netfs_create_write_req() to handle async cache object creation Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 442/869] iomap: guard io_size EOF trim against concurrent truncate underflow Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 443/869] afs: Fix reinitialisation of the inode, in particular ->lock_work Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 444/869] xen/pvcalls: bound backend response req_id before indexing rsp[] Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 445/869] sctp: fix addr_wq_timer race in sctp_free_addr_wq() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 446/869] drm/panthor: Always use the IRQ-safe variant when acquiring the fence lock Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 447/869] hwmon: (pmbus/core) honor vrm_version in pmbus_data2reg_vid() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 448/869] sctp: add INIT verification after cookie unpacking Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 449/869] tipc: fix UAF in cleanup_bearer() due to premature dst_cache_destroy() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 450/869] bpf: Guard conntrack opts error writes Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 451/869] md/raid10: fix writes_pending leak on write request failures Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 452/869] md/raid1: fix writes_pending and barrier reference leaks on write failures Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 453/869] soundwire: fix bug in sdw_add_element_group_count found by syzkaller Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 454/869] net: serialize netif_running() check in enqueue_to_backlog() Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 455/869] RDMA/irdma: Replace waitqueue and flag with completion Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 456/869] RDMA/bnxt_re: Avoid repeated requests to allocate WC pages Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 457/869] RDMA/bnxt_re: Add a max slot check for SQ Greg Kroah-Hartman
2026-10-17 15:54 ` [PATCH 6.12 458/869] RDMA/bnxt_re: Free CQ toggle page after firmware teardown Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 459/869] RDMA/bnxt_re: Fix budget handling of notification queue Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 460/869] RDMA/bnxt_re: Remove unusable nq variable Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 461/869] RDMA/bnxt_re: Free SRQ toggle page after firmware teardown Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 462/869] RDMA/bnxt_re: Initialize dpi variable to zero Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 463/869] sockmap: Fix use-after-free in udp_bpf_recvmsg() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 464/869] ALSA: seq: Clean up fifo locking with guard Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 465/869] ALSA: seq: avoid stale FIFO cells during resize Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 466/869] net: watchdog: fix refcount tracking races Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 467/869] bnxt: fix head underflow on XDP head-grow Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 468/869] cxl/region: Block region delete during region creation Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 469/869] ixgbe: do not configure xps for XDP queues Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 470/869] bpf: Reject sleepable BPF_LSM_CGROUP programs at load time Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 471/869] ocfs2: validate fast symlink target during inode read Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 472/869] wifi: ath12k: fix memory leak in ath12k_wifi7_dp_rx_h_verify_tkip_mic() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 473/869] md: replace wait loop with wait_event() in md_handle_request() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 474/869] md/raid1,raid10: fix deadlock in read error recovery path Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 475/869] md/raid1,raid10: fix bio accounting for split md cloned bios Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 476/869] md/raid1,raid10: fix error-path detection with md_cloned_bio() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 477/869] nvmet-tcp: check return value of nvmet_tcp_set_queue_sock Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 478/869] ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 479/869] OPP: Fix race between OPP addition and lookup Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 480/869] wifi: ath11k: cancel SSR work items during PCI shutdown Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 481/869] drm/amd/display: Fix divide-by-zero in calculate_mcache_setting on zero viewport Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 482/869] s390/ap: Move response_type struct into ap_msg struct Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 483/869] s390/ap/zcrypt: Rework AP message buffer allocation Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 484/869] s390/ap: Introduce ap message buffer pool Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 485/869] s390/ap/zcrypt: New xflag parameter Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 486/869] s390/zcrypt: Move inline function rng_type6cprb_msgx from header to code Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 487/869] s390/zcrypt: Rework domain processing within zcrypt device driver Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 488/869] s390/zcrypt: Close speculative mem read possibility Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 489/869] afs: Fix UAF when sending a message Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 490/869] dibs: fix use-after-free of dmb_node in loopback attach/detach/unregister Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 491/869] iommu/iommufd: Fix IOPF group ownership UAF Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 492/869] octeontx2-af: Block VFs from clobbering special CGX PKIND state Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 493/869] Bluetooth: hci_sync: hold conn in hci_connect_pa_sync() callback Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 494/869] Bluetooth: hci_sync: hold conn in hci_connect_big_sync() callback Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 495/869] Bluetooth: ISO: hold sk properly in iso_conn_ready Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 496/869] Bluetooth: ISO: lock sk in iso_connect_ind Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 497/869] netfs: Fix folio_queue ENOMEM in writeback by adding a mempool Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 498/869] net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 499/869] xsk: drain continuation descs after overflow in xsk_build_skb() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 500/869] xsk: provide sufficient space in pool->tx_descs Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 501/869] xsk: reclaim invalid Tx descriptors in ZC batch path Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 502/869] btrfs: skip global block reserve accounting for rescue mounts Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 503/869] mm/page_table_check: skip special zero mappings Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 504/869] eventfs: Use children field for rcu head and add memory barriers Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 505/869] selftests: tls: add rekey tests Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 506/869] tls: rx: restore msg_iter before TLS 1.3 optimistic retry Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 507/869] watchdog: at91sam9_wdt: prevent timer rearm during teardown Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 508/869] s390/ism: Fix UAF of sba and ieq during ism_dev_exit() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 509/869] netfilter: nf_flow_table: drop existing skb dst before skb_dst_set_noref() Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 510/869] bnxt_en: Disable EOP for TPA on all chips to prevent data corruption Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 511/869] hwmon: (pmbus) Fix type confusion in notification logic Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 512/869] vhost_iotlb: bound map allocation in add_range Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 513/869] bpf: Fix netns reference imbalance in conntrack kfuncs Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 514/869] btrfs: lzo: reject inline extents without valid headers Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 515/869] xfs: handle NULL b_addr in xfs_buf_free Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 516/869] soc: aspeed: lpc-snoop: Fix usercopy overflow in snoop_file_read Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 517/869] gpio: pca953x: fix pca953x_irq_bus_sync_unlock regmap lock Greg Kroah-Hartman
2026-10-17 15:55 ` [PATCH 6.12 518/869] firewire: ohci: fix NULL pointer dereference in ar_context_release Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 519/869] ipvs: revalidate ihl to prevent out-of-bounds access Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 520/869] sctp: validate cookie AUTH state before use Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 521/869] scsi: core: pair EH runtime PM get and put Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 522/869] ASoC: SOF: Relocate and rework functionality for PCM stream freeing Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 523/869] ASoC: SOF: pcm: Move period/buffer configuration print after platform open Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 524/869] ASoC: SOF: pcm: Add snd_sof_pcm specific wrappers for dev_dbg() and dev_err() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 525/869] ASoC: SOF: ipc4-pcm: Continue the pipeline trigger in case of IPC timeout Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 526/869] tracing/probes: Remove WARN_ON_ONCE from parse_btf_arg Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 527/869] net: ibm: emac: use devm_platform_ioremap_resource Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 528/869] net: ibm: emac: use platform_get_irq Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 529/869] net: emac: Fix NULL pointer dereference in emac_probe Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 530/869] ieee802154: Avoid calling WARN_ON() on -ENOMEM in cfg802154_switch_netns() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 531/869] coresight: ete: Always save state on power down Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 532/869] ALSA: seq: oss: Serialize readq reset state with q->lock Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 533/869] btrfs: lzo: reject compressed segment that overflows the compressed input Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 534/869] netfilter: flowtable: avoid num_encaps underflow on bridge VLAN untag Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 535/869] EDAC/igen6: Initialize edac_op_state according to the configuration data Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 536/869] EDAC/igen6: Add polling support Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 537/869] EDAC/igen6: Skip absent memory controllers Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 538/869] EDAC/igen6: Fix call trace due to missing release() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 539/869] scsi: hisi_sas: Add slave_destroy interface for v3 hw Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 540/869] soc: xilinx: Fix race condition in event registration Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 541/869] cxl: Fix CXL_HEADERLOG_SIZE to match RAS Capability size Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 542/869] netfilter: nf_conntrack_expect: use conntrack GC to reap expectations Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 543/869] perf tools: Use perf_env__get_cpu_topology() in machine__resolve() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 544/869] Bluetooth: hci_sync: hold conn in hci_connect_acl/le_sync() callbacks Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 545/869] idpf: bound interrupt-vector register fill to the allocated array Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 546/869] dmaengine: idxd: fix double free of wq, engine, and group structs Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 547/869] drm/amd/display: check if dml21_add_phantom_plane() is successful Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 548/869] btrfs: initialize inode mapping flags for cached inodes Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 549/869] bpf: Check sk_state before sk_protocol in bpf_tcp_*_syncookie Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 550/869] drm/amdkfd: Fix infinite loop parsing CRAT with zero subtype length Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 551/869] drm/amdkfd: Add bounds check for CRAT " Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 552/869] Bluetooth: ISO: zero the sockaddr before returning it in getname Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 553/869] fbdev: Wrap user-invoked calls to fb_set_var() in helper Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 554/869] tipc: avoid busy looping in tipc_exit_net() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 555/869] NTB: core: Add .get_dma_dev() callback to ntb_dev_ops Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 556/869] NTB: ntb_transport: Use ntb_get_dma_dev() for DMA buffers Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 557/869] ntb: Store original DMA address for future release Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 558/869] tap: Keep hdr_len in tap_get_user() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 559/869] net: tap: fix wrong transport_header when sending VLAN-tagged frame Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 560/869] io_uring: defer eventfd signaling when queued from a wakeup handler Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 561/869] wifi: iwlwifi: dvm: pair transport op-mode enter/leave Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 562/869] wifi: iwlwifi: dvm: fix memory leak in iwl_op_mode_dvm_start() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 563/869] svcrdma: Reject Read lists that exceed the page budget Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 564/869] svcrdma: Add Write chunk WRs to the RPCs Send WR chain Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 565/869] svcrdma: wake sq waiters when the transport closes Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 566/869] svcrdma: Clear sc_cm_id when ADDR_CHANGE replacement fails Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 567/869] SUNRPC: Reject short RFC 4121 MIC tokens in gss_krb5_verify_mic_v2 Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 568/869] ext2: Fix lost inode updates for IS_SYNC inodes Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 569/869] smb: client: reject a tree connect response whose byte count is too small Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 570/869] cifs: call pagecache_isize_extended() in cifs_setsize() when extending Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 571/869] ceph: cap delegated inode count in ceph_parse_deleg_inos() Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 572/869] ceph: fix UAF in check_new_map() on session freed during unlock Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 573/869] nfsd: fix fcache_disposal UAF by inlining dispose state into nfsd_net Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 574/869] nfsd: restore rq_status_counter to even on all nfsd_dispatch() exit paths Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 575/869] lockd, nfsd: RCU-protect nlmsvc_ops dispatch Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 576/869] mm/mglru: reset page lru tier bits when activating Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 577/869] mm/mglru: use the common routine for dirty/writeback reactivation Greg Kroah-Hartman
2026-10-17 15:56 ` [PATCH 6.12 578/869] mm/mglru: fix and remove redundant unevictable folio handling Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 579/869] ksmbd: fix tree connection use-after-free in smb2_tree_connect() Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 580/869] drm/amdkfd: Fix partial migrate issue Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 581/869] drm/amdkfd: return migration pages from copy function Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 582/869] Revert "drm/amdkfd: return migration pages from copy function" Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 583/869] drm/amdkfd: Fix the case that vm range is hole at svm_migrate_copy_to_vram Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 584/869] drm/amdkfd: return migration pages from copy function - again Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 585/869] drm/amdkfd: Fix error path at svm_migrate_copy_to_ram Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 586/869] drm/amdkfd: Add TLB flush after MES queue eviction/suspension Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 587/869] drm/amdgpu: force complete the MES ring fences on reset Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 588/869] drm/amdgpu: force complete the KIQ " Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 589/869] f2fs: fix to avoid potential deadloop in f2fs_fsync_node_pages() Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 590/869] LoongArch: BPF: Refactor jump offset calculation in tail call Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 591/869] KVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 592/869] KVM: s390: Fix memory corruption by not reinjecting CK machine checks Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 593/869] mm/huge_memory: transfer the pmd dirty bit to the folio on zap Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 594/869] netfilter: nf_tables: prefer nft_trans_elem_alloc helper Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 595/869] netfilter: nf_tables: add nft_trans_commit_list_add_elem helper Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 596/869] netfilter: nf_tables: prepare for multiple elements in nft_trans_elem structure Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 597/869] netfilter: nf_tables: skip double clone set expressions on element insert Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 598/869] net_sched: sch_fq: add three drop_reason Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 599/869] net/sched: add qstats_cpu_drop_inc() helper Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 600/869] net/sched: act_ife: Only operate on Ethernet frames Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 601/869] octeontx2-vf: fix workqueue and netdev race in probe/remove Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 602/869] xsk: honor XDP_TX_METADATA in zero-copy path Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 603/869] Bluetooth: do not leak an hci_conn when a second LE connect is rejected Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 604/869] net: add getsockopt_iter callback to proto_ops Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 605/869] Bluetooth: L2CAP: convert to getsockopt_iter Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 606/869] Bluetooth: L2CAP: access chan->conn safely in get/setsockopt Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 607/869] Drivers: hv: vmbus: Skip VMBus module cleanup for non-nested root partition Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 608/869] net/sched: account classifier filter allocations to memcg Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 609/869] NFSv4.1: zero referring call lists before decoding Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 610/869] vxlan: fix reading neigh ha Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 611/869] net: bridge: arp/nd proxy: " Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 612/869] ip6mr: do not clone dst in ip6mr_cache_report() Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 613/869] ALSA: mtpav: shut down output timer before card teardown Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 614/869] virtio_net: Fix resize of the RX ring Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 615/869] dpll: fix NULL deref in dpll_device_ops() during teardown race Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 616/869] bpf, xdp: move offload check into dev_xdp_install() Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 617/869] NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 618/869] ksmbd: scope session state changes to bound connections Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 619/869] ksmbd: detach blocked lock requests before freeing Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 620/869] ksmbd: safely discard unregistered deferred locks Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 621/869] erofs: fix interlaced ztailpacking pclusters Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 622/869] ksmbd: defer publishing granted locks to prevent UAF/double-free race Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 623/869] ksmbd: serialize oplock close with pending break ownership Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 624/869] ksmbd: fix slab-out-of-bounds read in ksmbd_alloc_user() Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 625/869] bpf: Check pointer type for all atomic RMW paths Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 626/869] apparmor: fix deadlock in complain-mode change_hat Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 627/869] blk-cgroup: delay freeing policy data after rcu grace period Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 628/869] blk-iocost: clear delay state when freeing policy data Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 629/869] blk-iolatency: " Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 630/869] ocfs2: validate DIO orphan slot during inode read Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 631/869] ocfs2: validate " Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 632/869] nvmet: fix max_qid race between configfs and controller allocation Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 633/869] clocksource/drivers/samsung_pwm: Switch to raw_spinlock_t type Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 634/869] bpf, s390: Clear fetch destination on faulting arena atomic Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 635/869] bpf: Compare iterator types during state pruning Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 636/869] apparmor: fix unconfined user namespace restriction forced stack Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 637/869] amt: Dont support cross-netns setup Greg Kroah-Hartman
2026-10-17 15:57 ` [PATCH 6.12 638/869] NFS: Return a delegation the client fails to record Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 639/869] iommu/vt-d: Flush context cache with correct SID when tearing down aliases Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 640/869] bpf: Fix mmap_lock leak in irq_work path Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 641/869] Bluetooth: ISO: fix race of kfree vs kref_get_unless_zero Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 642/869] Bluetooth: L2CAP: use proto_lock for l2cap_data to fix l2cap_disconn_ind Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 643/869] btrfs: qgroup: fix a wrong length calculation in qgroup_free_reserved_data() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 644/869] btrfs: zoned: dont clobber the extent buffer when zeroing it out Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 645/869] btrfs: check if root is readonly when setting posix acl Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 646/869] btrfs: always wait for ordered extents to avoid OE races Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 647/869] btrfs: defrag: fix deadlock between defrag and delalloc space reservation Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 648/869] scsi: sd: Move the sd_config_discard() function definition Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 649/869] scsi: sd: Fix special_vec mempool leak when scsi_alloc_sgtables() fails Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 650/869] coresight: etm4x: missing cscfg_csdev_disable_active_config() in perf enable Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 651/869] drm/amd/display: disable replay when crc source is enabled Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 652/869] drm/amd/display: Resize MST HDCP per-connector arrays to 32 Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 653/869] bpf: Factor callchain_store function from __bpf_get_stack Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 654/869] bpf: Factor callchain_finalize " Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 655/869] bpf: Remove trace_in argument " Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 656/869] bpf: Clear buf on error in __bpf_get_task_stack Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 657/869] ocfs2/heartbeat: fix slot mapping rollback leaks on error paths Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 658/869] ocfs2: o2hb: quiesce negotiate handlers and timeout work Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 659/869] ARM: 9481/2: breakpoint: CFI breakpoints only on demand Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 660/869] thermal: hwmon: Remove hwmon class device along with its parent Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 661/869] ocfs2: validate inline xattrs during inode block validation Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 662/869] ublk: check import_ubuf() return value Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 663/869] blk-cgroup: fix race between policy activation and blkg destruction Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 664/869] HID: steam: Reject short reads Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 665/869] HID: logitech-hidpp: Fix FF device cleanup on init failure Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 666/869] tty: skip cdev_del() when no cdev is registered Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 667/869] serial: core: clear freed pointers on uart_register_driver() failure Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 668/869] serial: core: do fallible allocations before the console can be registered Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 669/869] wifi: cfg80211: stop PMSR before P2P and NAN teardown Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 670/869] wifi: brcmfmac: fix P2P action frame handling without device vif Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 671/869] wifi: nl80211: check link is beaconing for color change Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 672/869] wifi: nl80211: clean up color-change beacon data on errors Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 673/869] arm64: ptrace: Keep orig_x0 in-sync with x0 on syscall entry Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 674/869] wifi: mt76: mt7996: do not attach hif2 WED when the main WED attach failed Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 675/869] bpf: Reject >8 byte return values on return-reading trampoline paths Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 676/869] drm/msm: dont tear down KMS twice when KMS init fails Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 677/869] wifi: mt76: cancel reset and rc work on device unregister Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 678/869] wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 679/869] wifi: ath12k: fix overreads in ath12k_wmi_process_csa_switch_count_event() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 680/869] drm/i915: rename range_overflows_end() to range_end_overflows() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 681/869] drm/i915: document range_overflows() and range_end_overflows() macros Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 682/869] overflow: add range_overflows() and range_end_overflows() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 683/869] drm/panthor: Add vm_bind region with kbo range overlap check Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 684/869] RDMA/cxgb4: Fix dereg_skb leak and double free in write_tpt_entry() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 685/869] PCI: Make pci_match_one_device() match on ID instead of device Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 686/869] PCI: Fix dyn_id add TOCTOU Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 687/869] PCI: Fix UAF when probe runs concurrent to dyn ID removal Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 688/869] clk: mediatek: pllfh: Fix IO remapping leak in register_pllfhs error path Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 689/869] iommu/tegra241-cmdqv: Fix VINTF0 leak on the init-failure path Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 690/869] iommu/tegra241-cmdqv: Dont fall back to a freed smmu after devm_krealloc() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 691/869] scsi: ufs: core: Convert string descriptor format macros to enum Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 692/869] scsi: ufs: core: Validate string descriptors Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 693/869] pinctrl: mediatek: use devm_gpiochip_add_data() for GPIO chip Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 694/869] bpf: Fix WARNING in bpf_tracing_link_release Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 695/869] ext4: fix ABBA deadlock in ext4_xattr_inode_cache_find() Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 696/869] kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI Greg Kroah-Hartman
2026-10-17 19:45   ` Nathan Chancellor
2026-10-17 15:58 ` [PATCH 6.12 697/869] riscv, bpf: Fix kernel stack corruption in tailcall with CFI Greg Kroah-Hartman
2026-10-17 15:58 ` [PATCH 6.12 698/869] bpf: Zero queue and stack outputs on lock failure Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 699/869] drm/sched: Use struct for drm_sched_init() params Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 700/869] drm/msm: Only fini scheduler after successful init Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 701/869] firmware: arm_scmi: Fix SCMI device destroy lifetimes Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 702/869] fs/resctrl: Prevent use-after-free in rdtgroup_kn_put() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 703/869] RDMA/rvt: Return NULL after port allocation failure Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 704/869] esp: do not unref managed frag pages in esp_ssg_unref() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 705/869] platform/x86: asus-wmi: fix resource leaks on probe failure Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 706/869] usb: gadget: uac: validate rate list length before storing Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 707/869] bpf: Reject rdonly/rdwr_buf_size kfunc arguments that exceed u32 max Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 708/869] platform/x86: dell-wmi-base: Fix handling of ultra performance key Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 709/869] bpf: Reject writes through untrusted BTF pointers Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 710/869] time/namespace: Validate nanosecond field in proc_timens_set_offset() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 711/869] bpf: Reject MEM_ALLOC BTF accesses past object bounds Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 712/869] dmaengine: xilinx_dma: Fix CPU stall in xilinx_dma_poll_timeout Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 713/869] drm/amd/display: Fix dangling pointer in CRTC reset function Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 714/869] drm/amd/display: Fix dangling pointer in plane " Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 715/869] mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 716/869] nfsd: convert nfsd_net boolean flags to unsigned long flags word Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 717/869] mm/hugetlb: refactor code around vmemmap_walk Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 718/869] mm/hugetlb: initialize gigantic bootmem hugepage struct pages earlier Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 719/869] ACPI: bus: Introduce acpi_bus_get_primary_device() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 720/869] powerpc/xive: add error return value to xive_smp_probe() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 721/869] powerpc/xive: propagate IPI init errors to prevent use-after-free Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 722/869] remoteproc: qcom_wcnss: Fix handling the lack of PD regulators in v3 Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 723/869] ksmbd: remove redundant DACL check in smb_check_perm_dacl Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 724/869] ksmbd: fix maximum allowed access checks Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 725/869] drm/amdkfd: fix SMI event cross-process information leak Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 726/869] drm/amdgpu: Update SRIOV Exchange Headers for RAS Telemetry Support Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 727/869] drm/amdgpu/ras: add ras_suspend callback and use it for cp_ecc_error_irq Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 728/869] wifi: iwlwifi: simplify nested if checks Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 729/869] wifi: iwlwifi: mvm: fix P2P-Device binding handling Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 730/869] RDMA/counter: Fix num_counters leak on bind_qp failure in alloc_and_bind() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 731/869] virt: acrn: Remove unused list acrn_irqfd_clients Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 732/869] virt: acrn: Fix irqfd use-after-free during eventfd shutdown Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 733/869] PM: sleep: core: Synchronize runtime PM status of parents and children Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 734/869] PM: sleep: core: Restrict power.set_active propagation Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 735/869] PM: Rearrange documentation related to __pm_runtime_disable() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 736/869] PM: Block enabling of runtime PM during system suspend Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 737/869] PM: runtime: Introduce pm_runtime_blocked() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 738/869] PM: sleep: Use DPM_FLAG_SMART_SUSPEND conditionally Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 739/869] PM: sleep: Fix bit masking operation Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 740/869] driver core: Add device_link_test() for testing device link flags Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 741/869] driver core: Avoid warning when removing a device while its supplier is unbinding Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 742/869] serial: 8250: invert serial8250_register_8250_port() CIR condition Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 743/869] tty: serial: 8250: protect against NULL uart->port.dev in register Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 744/869] drm/amdgpu: Remove unused amdgpu_i2c functions Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 745/869] drm/amdgpu/atombios: drop empty function Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 746/869] drm/amdgpu: rework i2c init and fini Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 747/869] drm/amdgpu: Bound GPIO I2C table entry count from VBIOS Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 748/869] gpiolib: make value setters have return values Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 749/869] gpiolib: wrap gpio_chip::set() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 750/869] gpiolib: rework the wrapper around gpio_chip::set_multiple() Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 751/869] gpiolib: introduce gpio_chip setters that return values Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 752/869] pinctrl: mediatek: paris: dont double-check the GPIO number Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 753/869] pinctrl: mediatek: paris: use new GPIO line value setter callbacks Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 754/869] pinctrl: mediatek: paris: bypass pinctrl GPIO layer in set GPIO direction Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 755/869] genirq/proc: Switch to lock guards Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 756/869] genirq: Consistently use %u format specifier for unsigned int variables Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 757/869] genirq/proc: Size interrupt directory names for 10-digit interrupt numbers Greg Kroah-Hartman
2026-10-17 15:59 ` [PATCH 6.12 758/869] media: chips-media: wave5: Release m2m_ctx after Instance Removed from List Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 759/869] i3c: master: svc: Fix npcm845 FIFO empty issue Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 760/869] i3c: master: svc: Fix npcm845 invalid slvstart event Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 761/869] i3c: master: svc: Prevent IRQ storm from false SLVSTART on NPCM845 Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 762/869] hwmon: (asus_rog_ryujin) Rely on subsystem locking Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 763/869] hwmon: (asus_rog_ryujin) Add per-device configuration Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 764/869] hwmon: (asus_rog_ryujin) Validate HID report lengths Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 765/869] smb: client: avoid using uninitialized SIDs in cifs_posix_to_fattr() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 766/869] smb: client: honor forceuid/forcegid when mapping SIDs to uid/gid Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 767/869] drm/amdgpu: skip the VMID 0 flush for VRAM Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 768/869] perf/x86/intel: Prevent drain_pebs() reentry Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 769/869] net/mlx5e: Move representor vnic reporter to eswitch devlink port Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 770/869] Bluetooth: hci_sysfs: Fix NULL pointer dereference in device_del() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 771/869] vhost: invalidate vring access on IOTLB transitions Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 772/869] vduse: validate virtqueue alignment Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 773/869] virtio_ring: fix stale descriptor flags after a failed packed add Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 774/869] iommu/amd: Do not reallocate GA log buffers on resume Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 775/869] bpf: mark a NULL call argument precise Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 776/869] tracing: Fix subbuf resize races with trace_pipe_raw readers Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 777/869] bpf: Preserve inner map identity in callback frames Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 778/869] bpf: Mark NULL kptr stores precise Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 779/869] bpf: Keep refcount_acquire nullable for borrowed RCU kptrs Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 780/869] bpf: Dont infer non-NULL from a pointer with an unbounded offset Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 781/869] bpf: Reject legacy packet loads from callbacks Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 782/869] bpf: Check ancestor frames for rbtree callbacks Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 783/869] bpf: dont rewrite bpf_fastcall patterns entered by a jump Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 784/869] bpf: zero extend the result of an arena 32-bit cmpxchg Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 785/869] ASoC: Intel: avs: Refactor and fix init_config access Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 786/869] bpf: Mark syscall helpers as sleepable Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 787/869] bpf: Mark signal tracepoint siginfo arguments as scalar Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 788/869] erofs: disable LZ4 rolling decompression for now Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 789/869] net: rename netns_local to netns_immutable Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 790/869] net: plumb extack in __dev_change_net_namespace() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 791/869] net: Remove conflicting altnames for dying netns " Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 792/869] btrfs: zstd: fix lost wakeup when waiting for a workspace Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 793/869] bpf: backtracking shouldnt clear outer frame R1-R5 for callbacks Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 794/869] bpf: backtrack_insn(): Handle ld_{abs,ind} subprog exit edge Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 795/869] ipv6: mcast: use rcu_assign_pointer() for __rcu list updates Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 796/869] smb/client: invalidate fscache for fallocate range operations Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 797/869] net: stmmac: fix dma mapping leak in stmmac_tso_xmit() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 798/869] bpf: check_cond_jmp_op(): properly infer if register is null Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 799/869] printk: Dont WARN on kthread_run failure Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 800/869] drm/gud: validate GUD_ROTATION_0 is present in supported rotations Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 801/869] drm/virtio: Use drm_gem_plane_helper_prepare_fb() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 802/869] drm/virtio: Add a helper to map and note the dma addrs and lengths Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 803/869] drm/virtio: use the DMA API for resource backing on Xen Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 804/869] functionfs: fix the open/removal races Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 805/869] ACPI: platform: Use acpi_bus_get_primary_device() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 806/869] KVM: nSVM: Triple fault if restore host CR3 fails on nested #VMEXIT Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 807/869] greybus: raw: fix use-after-free if write is called after disconnect Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 808/869] firmware: arm_ffa: Add support for IMPDEF value in the memory access descriptor Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 809/869] firmware: arm_ffa: Fix Endpoint Memory Access Descriptor offset calculation Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 810/869] pmdomain: imx93-blk-ctrl: Extract PHY as shared domain for DSI/CSI Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 811/869] cxl/region: Resolve region deletion races Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 812/869] bpf: Remove migrate_{disable|enable} in bpf_obj_free_fields() Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 813/869] bpf: Clear rb node linkage when freeing bpf_rb_root Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 814/869] ocfs2: validate external xattr entries when reading metadata Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 815/869] dm-integrity: replace forgeable discard filler with a keyed sector marker Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 816/869] perf/x86/intel/uncore: Fix uncore_box ref/unref ordering Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 817/869] i3c: master: Fix recursive locking during device registration Greg Kroah-Hartman
2026-10-17 16:00 ` [PATCH 6.12 818/869] xfs: remove unused trace event xfs_dqreclaim_dirty Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 819/869] ublk: fix dead loop when canceling io command Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 820/869] riscv: uaccess: Only restore the CSR_STATUS SUM bit Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 821/869] s390/kvm: Initialize uninitialized flags variable Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 822/869] KVM: s390: wrapper for KVM_BUG Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 823/869] KVM: s390: move pv gmap functions into kvm Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 824/869] KVM: s390: use __kvm_faultin_pfn() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 825/869] KVM: s390: move gmap_shadow_pgt_lookup() into kvm Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 826/869] KVM: s390: pv: fix race when making a page secure Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 827/869] KVM: s390: Fix FOLL_*/FAULT_FLAG_* confusion Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 828/869] s390/kvm: Mask extra bits from program interrupt code Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 829/869] scsi: ufs: qcom : Fix NULL pointer dereference in ufs_qcom_setup_clocks Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 830/869] accel/ivpu: Fix race condition when mapping dmabuf Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 831/869] KVM: SEV: Drop FOLL_WRITE for encrypted region registration Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 832/869] net: Fix wild-memory-access in __register_pernet_operations() when CONFIG_NET_NS=n Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 833/869] mpls: Set rt->rt_nhn just before returning from mpls_nh_build_multi() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 834/869] media: verisilicon: Fix kernel panic due to __initconst misuse Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 835/869] soc/tegra: pmc: Document tegra_pmc.syscore field Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 836/869] soc/tegra: pmc: Add kerneldoc for wake-up variables Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 837/869] i3c: mipi-i3c-hci: Preserve RUN bit when aborting DMA ring Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 838/869] ceph: do not skip the first folio of the next object in writeback Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 839/869] ceph: fix crash after fscrypt_encrypt_pagecache_blocks() error Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 840/869] ceph: introduce ceph_submit_write() method Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 841/869] ceph: always call ceph_shift_unused_folios_left() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 842/869] spi: microchip-core-qspi: stop checking viability of op->max_freq in supports_op callback Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 843/869] sched/psi: Create the psimon kthread outside of cgroup_mutex Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 844/869] ocfs2: use correct endian in ocfs2_dinode_has_extents Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 845/869] netfs: release readahead folios on iterator preparation failure Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 846/869] netfs: Fix folio state after ENOMEM whilst under writeback iteration Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 847/869] net: do not acquire dev->tx_global_lock in netdev_watchdog_up() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 848/869] s390/zcrypt: Fix memory leak with CCA cards used as accelerator Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 849/869] EDAC/igen6: Fix the flood of invalid error reports Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 850/869] netfilter: ctnetlink: do not expose expectation DEAD flag Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 851/869] EDAC/igen6: Fix NULL pointer dereference Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 852/869] Revert "esp: do not unref managed frag pages in esp_ssg_unref()" Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 853/869] mm/hugetlb_vmemmap: fix incorrect vmemmap restore in rollback Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 854/869] PM: sleep: Unblock runtime PM when device prepare fails Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 855/869] soundwire: intel_auxdevice: Fix system suspend/resume handling Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 856/869] gpiolib: Allow to use setters with return value for output-only gpios Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 857/869] gpiolib: initialize return value in gpiochip_set_multiple() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 858/869] i3c: master: svc: Fix missed IBI after false SLVSTART on NPCM845 Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 859/869] i3c: master: svc: Fix npcm845 FIFO_EMPTY quirk Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 860/869] i3c: master: svc: Fix i3c_master_get_free_addr return check Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 861/869] tracing: Fix ring_buffer_read_page_size() kernel-doc Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 862/869] tracing: Fix comment in tracing_buffers_splice_read() Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 863/869] dm-integrity: fix buffer overflow with keyed discard Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 864/869] types: move struct rcuwait into types.h Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 865/869] irqwork: Move data struct to a types header Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 866/869] bpf, sockmap: Account for receive queue in FIONREAD without a verdict program Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 867/869] wifi: atk9k: Revert "wifi: ath9k: reject short WMI command responses" Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 868/869] s390/uv: Dont return 0 from make_hva_secure() if the operation was not successful Greg Kroah-Hartman
2026-10-17 16:01 ` [PATCH 6.12 869/869] drm/panfrost: Fix scheduler workqueue bug Greg Kroah-Hartman
2026-10-17 17:19 ` [PATCH 6.12 000/869] 6.12.114-rc1 review Brett A C Sheffield
2026-10-17 23:03 ` Richard Narron
2026-10-17 23:38 ` Peter Schneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261017160043.672549469@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=patches@lists.linux.dev \
    --cc=rafael@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=treding@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.