9dd7462461
by cherry-picking the relevant commits from launchpad/lunar [0]. (relevant commits are based on k.o/stable commits for this) minimally tested by booting my (ryzen) machine with this kernel and skimming through dmesg after boot. [0] git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/lunar Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
109 lines
3.3 KiB
Diff
109 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Gleixner <tglx@linutronix.de>
|
|
Date: Wed, 14 Jun 2023 01:39:32 +0200
|
|
Subject: [PATCH] mips/cpu: Switch to arch_cpu_finalize_init()
|
|
|
|
check_bugs() is about to be phased out. Switch over to the new
|
|
arch_cpu_finalize_init() implementation.
|
|
|
|
No functional change.
|
|
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
Link: https://lore.kernel.org/r/20230613224545.312438573@linutronix.de
|
|
|
|
(backported from commit 7f066a22fe353a827a402ee2835e81f045b1574d)
|
|
[cascardo: only removed check_bugs from arch/mips/include/asm/bugs.h]
|
|
CVE-2022-40982
|
|
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
|
|
Acked-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
|
|
Acked-by: Stefan Bader <stefan.bader@canonical.com>
|
|
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
|
|
(cherry picked from commit 7753934cdd362695ffbc0f1db941ff6d4c72fa96)
|
|
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
|
---
|
|
arch/mips/Kconfig | 1 +
|
|
arch/mips/include/asm/bugs.h | 17 -----------------
|
|
arch/mips/kernel/setup.c | 13 +++++++++++++
|
|
3 files changed, 14 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
|
|
index f11dda15aa54..fcf59a375c5b 100644
|
|
--- a/arch/mips/Kconfig
|
|
+++ b/arch/mips/Kconfig
|
|
@@ -4,6 +4,7 @@ config MIPS
|
|
default y
|
|
select ARCH_32BIT_OFF_T if !64BIT
|
|
select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
|
|
+ select ARCH_HAS_CPU_FINALIZE_INIT
|
|
select ARCH_HAS_CURRENT_STACK_POINTER if !CC_IS_CLANG || CLANG_VERSION >= 140000
|
|
select ARCH_HAS_DEBUG_VIRTUAL if !64BIT
|
|
select ARCH_HAS_FORTIFY_SOURCE
|
|
diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h
|
|
index d72dc6e1cf3c..8d4cf29861b8 100644
|
|
--- a/arch/mips/include/asm/bugs.h
|
|
+++ b/arch/mips/include/asm/bugs.h
|
|
@@ -1,17 +1,11 @@
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
- * This is included by init/main.c to check for architecture-dependent bugs.
|
|
- *
|
|
* Copyright (C) 2007 Maciej W. Rozycki
|
|
- *
|
|
- * Needs:
|
|
- * void check_bugs(void);
|
|
*/
|
|
#ifndef _ASM_BUGS_H
|
|
#define _ASM_BUGS_H
|
|
|
|
#include <linux/bug.h>
|
|
-#include <linux/delay.h>
|
|
#include <linux/smp.h>
|
|
|
|
#include <asm/cpu.h>
|
|
@@ -30,17 +24,6 @@ static inline void check_bugs_early(void)
|
|
check_bugs64_early();
|
|
}
|
|
|
|
-static inline void check_bugs(void)
|
|
-{
|
|
- unsigned int cpu = smp_processor_id();
|
|
-
|
|
- cpu_data[cpu].udelay_val = loops_per_jiffy;
|
|
- check_bugs32();
|
|
-
|
|
- if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
|
- check_bugs64();
|
|
-}
|
|
-
|
|
static inline int r4k_daddiu_bug(void)
|
|
{
|
|
if (!IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
|
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
|
|
index f1c88f8a1dc5..4d950f666ef6 100644
|
|
--- a/arch/mips/kernel/setup.c
|
|
+++ b/arch/mips/kernel/setup.c
|
|
@@ -11,6 +11,8 @@
|
|
* Copyright (C) 2000, 2001, 2002, 2007 Maciej W. Rozycki
|
|
*/
|
|
#include <linux/init.h>
|
|
+#include <linux/cpu.h>
|
|
+#include <linux/delay.h>
|
|
#include <linux/ioport.h>
|
|
#include <linux/export.h>
|
|
#include <linux/screen_info.h>
|
|
@@ -839,3 +841,14 @@ static int __init setnocoherentio(char *str)
|
|
}
|
|
early_param("nocoherentio", setnocoherentio);
|
|
#endif
|
|
+
|
|
+void __init arch_cpu_finalize_init(void)
|
|
+{
|
|
+ unsigned int cpu = smp_processor_id();
|
|
+
|
|
+ cpu_data[cpu].udelay_val = loops_per_jiffy;
|
|
+ check_bugs32();
|
|
+
|
|
+ if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
|
+ check_bugs64();
|
|
+}
|