Archive-only list for patches
 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: 876+ 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-18  1:54   ` 陈华才
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox