Skip to contentSkip to conversation

6.1.8-rc1 review

PATCH In review Greg Kroah-Hartman 11 participants 209 messages Jan 22, 2023 – Jan 24, 2023 Page 2 of 2

Subsystems (4)
lore
Share & tools
lore
author maintainer
#155 lore raw

PATCH 155/193 panic: Introduce warn_limit

In reply to Greg Kroah-Hartman

From: Kees Cook <[email protected]>

commit 9fc9e278a5c0b708eeffaf47d6eb0c82aa74ed78 upstream.

Like oops_limit, add warn_limit for limiting the number of warnings when panic_on_warn is not set.

Cc Jonathan Corbet <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Baolin Wang <[email protected]>
Cc "Jason A. Donenfeld" <[email protected]>
Cc Eric Biggers <[email protected]>
Cc Huang Ying <[email protected]>
Cc Petr Mladek <[email protected]>
Cc tangmeng <[email protected]>
Cc "Guilherme G. Piccoli" <[email protected]>
Cc Tiezhu Yang <[email protected]>
Cc Sebastian Andrzej Siewior <[email protected]>
---
 Documentation/admin-guide/sysctl/kernel.rst |   10 ++++++++++
 kernel/panic.c                              |   14 ++++++++++++++
 2 files changed, 24 insertions(+)
Documentation/admin-guide/sysctl/kernel.rst +10 -0
@@ -1532,6 +1532,16 @@ entry will default to 2 instead of 0.
 2 Unprivileged calls to ``bpf()`` are disabled
 = =============================================================
 
+
+warn_limit
+==========
+
+Number of kernel warnings after which the kernel should panic when
+``panic_on_warn`` is not set. Setting this to 0 disables checking
+the warning count. Setting this to 1 has the same effect as setting
+``panic_on_warn=1``. The default value is 0.
+
+
 watchdog
 ========
 
kernel/panic.c +14 -0
@@ -58,6 +58,7 @@ bool crash_kexec_post_notifiers;
 int panic_on_warn __read_mostly;
 unsigned long panic_on_taint;
 bool panic_on_taint_nousertaint = false;
+static unsigned int warn_limit __read_mostly;
 
 int panic_timeout = CONFIG_PANIC_TIMEOUT;
 EXPORT_SYMBOL_GPL(panic_timeout);
@@ -88,6 +89,13 @@ static struct ctl_table kern_panic_table
 		.extra2         = SYSCTL_ONE,
 	},
 #endif
+	{
+		.procname       = "warn_limit",
+		.data           = &warn_limit,
+		.maxlen         = sizeof(warn_limit),
+		.mode           = 0644,
+		.proc_handler   = proc_douintvec,
+	},
 	{ }
 };
 
@@ -203,8 +211,14 @@ static void panic_print_sys_info(bool co
 
 void check_panic_on_warn(const char *origin)
 {
+	static atomic_t warn_count = ATOMIC_INIT(0);
+
 	if (panic_on_warn)
 		panic("%s: panic_on_warn set ...\n", origin);
+
+	if (atomic_inc_return(&warn_count) >= READ_ONCE(warn_limit) && warn_limit)
+		panic("%s: system warned too often (kernel.warn_limit is %d)",
+		      origin, warn_limit);
 }
 
 /**
author maintainer
#156 lore raw

PATCH 156/193 panic: Expose "warn_count" to sysfs

In reply to Greg Kroah-Hartman

From: Kees Cook <[email protected]>

commit 8b05aa26336113c4cea25f1c333ee8cd4fc212a6 upstream.

Since Warn count is now tracked and is a fairly interesting signal, add the entry /sys/kernel/warn_count to expose it to userspace.

---
 Documentation/ABI/testing/sysfs-kernel-warn_count |    6 ++++++
 MAINTAINERS                                       |    1 +
 kernel/panic.c                                    |   22 ++++++++++++++++++++--
 3 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-kernel-warn_count
Documentation/ABI/testing/sysfs-kernel-warn_count new file +6 -0
@@ -0,0 +1,6 @@
+What:		/sys/kernel/oops_count
+Date:		November 2022
+KernelVersion:	6.2.0
+Contact:	Linux Kernel Hardening List <[email protected]>
+Description:
+		Shows how many times the system has Warned since last boot.
MAINTAINERS +1 -0
@@ -11113,6 +11113,7 @@ L:	[email protected]
 S:	Supported
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
 F:	Documentation/ABI/testing/sysfs-kernel-oops_count
+F:	Documentation/ABI/testing/sysfs-kernel-warn_count
 F:	include/linux/overflow.h
 F:	include/linux/randomize_kstack.h
 F:	mm/usercopy.c
kernel/panic.c +20 -2
@@ -32,6 +32,7 @@
 #include <linux/bug.h>
 #include <linux/ratelimit.h>
 #include <linux/debugfs.h>
+#include <linux/sysfs.h>
 #include <trace/events/error_report.h>
 #include <asm/sections.h>
 
@@ -107,6 +108,25 @@ static __init int kernel_panic_sysctls_i
 late_initcall(kernel_panic_sysctls_init);
 #endif
 
+static atomic_t warn_count = ATOMIC_INIT(0);
+
+#ifdef CONFIG_SYSFS
+static ssize_t warn_count_show(struct kobject *kobj, struct kobj_attribute *attr,
+			       char *page)
+{
+	return sysfs_emit(page, "%d\n", atomic_read(&warn_count));
+}
+
+static struct kobj_attribute warn_count_attr = __ATTR_RO(warn_count);
+
+static __init int kernel_panic_sysfs_init(void)
+{
+	sysfs_add_file_to_group(kernel_kobj, &warn_count_attr.attr, NULL);
+	return 0;
+}
+late_initcall(kernel_panic_sysfs_init);
+#endif
+
 static long no_blink(int state)
 {
 	return 0;
@@ -211,8 +231,6 @@ static void panic_print_sys_info(bool co
 
 void check_panic_on_warn(const char *origin)
 {
-	static atomic_t warn_count = ATOMIC_INIT(0);
-
 	if (panic_on_warn)
 		panic("%s: panic_on_warn set ...\n", origin);
 
author maintainer
#157 lore raw

PATCH 157/193 docs: Fix path paste-o for /sys/kernel/warn_count

In reply to Greg Kroah-Hartman

From: Kees Cook <[email protected]>

commit 00dd027f721e0458418f7750d8a5a664ed3e5994 upstream.

Running "make htmldocs" shows that "/sys/kernel/oops_count" was duplicated. This should have been "warn_count":

Warning: /sys/kernel/oops_count is defined 2 times:
./Documentation/ABI/testing/sysfs-kernel-warn_count:0 ./Documentation/ABI/testing/sysfs-kernel-oops_count:0

Fix the typo.

---
 Documentation/ABI/testing/sysfs-kernel-warn_count |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/ABI/testing/sysfs-kernel-warn_count +1 -1
@@ -1,4 +1,4 @@
-What:		/sys/kernel/oops_count
+What:		/sys/kernel/warn_count
 Date:		November 2022
 KernelVersion:	6.2.0
 Contact:	Linux Kernel Hardening List <[email protected]>
author maintainer
#158 lore raw

PATCH 158/193 exit: Use READ_ONCE() for all oops/warn limit reads

In reply to Greg Kroah-Hartman

From: Kees Cook <[email protected]>

commit 7535b832c6399b5ebfc5b53af5c51dd915ee2538 upstream.

Use a temporary variable to take full advantage of READ_ONCE() behavior. Without this, the report (and even the test) might be out of sync with the initial test.

Fixes 9fc9e278a5c0 ("panic: Introduce warn_limit")
Fixes d4ccd54d28d3 ("exit: Put an upper limit on how often we can oops")
Cc "Eric W. Biederman" <[email protected]>
Cc Jann Horn <[email protected]>
Cc Arnd Bergmann <[email protected]>
Cc Petr Mladek <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Luis Chamberlain <[email protected]>
Cc Marco Elver <[email protected]>
Cc tangmeng <[email protected]>
Cc Sebastian Andrzej Siewior <[email protected]>
Cc Tiezhu Yang <[email protected]>
---
 kernel/exit.c  |    6 ++++--
 kernel/panic.c |    7 +++++--
 2 files changed, 9 insertions(+), 4 deletions(-)
kernel/exit.c +4 -2
@@ -931,6 +931,7 @@ void __noreturn make_task_dead(int signr
 	 * Then do everything else.
 	 */
 	struct task_struct *tsk = current;
+	unsigned int limit;
 
 	if (unlikely(in_interrupt()))
 		panic("Aiee, killing interrupt handler!");
@@ -954,8 +955,9 @@ void __noreturn make_task_dead(int signr
 	 * To make sure this can't happen, place an upper bound on how often the
 	 * kernel may oops without panic().
 	 */
-	if (atomic_inc_return(&oops_count) >= READ_ONCE(oops_limit) && oops_limit)
-		panic("Oopsed too often (kernel.oops_limit is %d)", oops_limit);
+	limit = READ_ONCE(oops_limit);
+	if (atomic_inc_return(&oops_count) >= limit && limit)
+		panic("Oopsed too often (kernel.oops_limit is %d)", limit);
 
 	/*
 	 * We're taking recursive faults here in make_task_dead. Safest is to just
kernel/panic.c +5 -2
@@ -231,12 +231,15 @@ static void panic_print_sys_info(bool co
 
 void check_panic_on_warn(const char *origin)
 {
+	unsigned int limit;
+
 	if (panic_on_warn)
 		panic("%s: panic_on_warn set ...\n", origin);
 
-	if (atomic_inc_return(&warn_count) >= READ_ONCE(warn_limit) && warn_limit)
+	limit = READ_ONCE(warn_limit);
+	if (atomic_inc_return(&warn_count) >= limit && limit)
 		panic("%s: system warned too often (kernel.warn_limit is %d)",
-		      origin, warn_limit);
+		      origin, limit);
 }
 
 /**
author maintainer
#159 lore raw

PATCH 159/193 x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN

In reply to Greg Kroah-Hartman

From: YingChi Long <[email protected]>

commit 55228db2697c09abddcb9487c3d9fa5854a932cd upstream.

WG14 N2350 specifies that it is an undefined behavior to have type definitions within offsetof", see

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm

This specification is also part of C23.

Therefore, replace the TYPE_ALIGN macro with the _Alignof builtin to avoid undefined behavior. (_Alignof itself is C11 and the kernel is built with -gnu11).

ISO C11 _Alignof is subtly different from the GNU C extension __alignof__. Latter is the preferred alignment and _Alignof the minimal alignment. For long long on x86 these are 8 and 4 respectively.

The macro TYPE_ALIGN's behavior matches _Alignof rather than __alignof__.

[ bp: Massage commit message. ]

---
 arch/x86/kernel/fpu/init.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
arch/x86/kernel/fpu/init.c +2 -5
@@ -133,9 +133,6 @@ static void __init fpu__init_system_gene
 	fpu__init_system_mxcsr();
 }
 
-/* Get alignment of the TYPE. */
-#define TYPE_ALIGN(TYPE) offsetof(struct { char x; TYPE test; }, test)
-
 /*
  * Enforce that 'MEMBER' is the last field of 'TYPE'.
  *
@@ -143,8 +140,8 @@ static void __init fpu__init_system_gene
  * because that's how C aligns structs.
  */
 #define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
-	BUILD_BUG_ON(sizeof(TYPE) != ALIGN(offsetofend(TYPE, MEMBER), \
-					   TYPE_ALIGN(TYPE)))
+	BUILD_BUG_ON(sizeof(TYPE) !=         \
+		     ALIGN(offsetofend(TYPE, MEMBER), _Alignof(TYPE)))
 
 /*
  * We append the 'struct fpu' to the task_struct:
author maintainer
#160 lore raw

PATCH 160/193 arch: fix broken BuildID for arm64 and riscv

In reply to Greg Kroah-Hartman

From: Masahiro Yamada <[email protected]>

commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream.

Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux since commit 994b7ac1697b ("arm64: remove special treatment for the link order of head.o").

The issue is that the type of .notes section, which contains the BuildID, changed from NOTES to PROGBITS.

Ard Biesheuvel figured out that whichever object gets linked first gets to decide the type of a section. The PROGBITS type is the result of the compiler emitting .note.GNU-stack as PROGBITS rather than NOTE.

While Ard provided a fix for arm64, I want to fix this globally because the same issue is happening on riscv since commit 2348e6bf4421 ("riscv:
remove special treatment for the link order of head.o"). This problem will happen in general for other architectures if they start to drop unneeded entries from scripts/head-object-list.txt.

Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h.

Fixes 994b7ac1697b ("arm64: remove special treatment for the link order of head.o")
Fixes 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o")
---
 include/asm-generic/vmlinux.lds.h |    5 +++++
 1 file changed, 5 insertions(+)
include/asm-generic/vmlinux.lds.h +5 -0
@@ -929,7 +929,12 @@
 #define PRINTK_INDEX
 #endif
 
+/*
+ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler.
+ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES.
+ */
 #define NOTES								\
+	/DISCARD/ : { *(.note.GNU-stack) }				\
 	.notes : AT(ADDR(.notes) - LOAD_OFFSET) {			\
 		__start_notes = .;					\
 		KEEP(*(.note.*))					\
author maintainer
#161 lore raw

PATCH 161/193 drm/amdgpu/discovery: enable soc21 common for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 69dc98bbd44160930b6b3ca9ca558f89435d2702 upstream.

Enable soc21 common for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1507,6 +1507,7 @@ static int amdgpu_discovery_set_common_i
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		amdgpu_device_ip_block_add(adev, &soc21_common_ip_block);
 		break;
 	default:
author maintainer
#162 lore raw

PATCH 162/193 drm/amdgpu/discovery: enable gmc v11 for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit d5fd8c89ed206b2df3933bc4ea129401b2b60869 upstream.

Enable gmc (graphic memory controller) v11 for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1552,6 +1552,7 @@ static int amdgpu_discovery_set_gmc_ip_b
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		amdgpu_device_ip_block_add(adev, &gmc_v11_0_ip_block);
 		break;
 	default:
author maintainer
#163 lore raw

PATCH 163/193 drm/amdgpu/discovery: enable gfx v11 for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit b952d6b3d3ff3c1570fab77f2137d5e5280a0e57 upstream.

Enable gfx v11 for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1787,6 +1787,7 @@ static int amdgpu_discovery_set_gc_ip_bl
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		amdgpu_device_ip_block_add(adev, &gfx_v11_0_ip_block);
 		break;
 	default:
author maintainer
#164 lore raw

PATCH 164/193 drm/amdgpu/discovery: enable mes support for GC v11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 6a6af77570add4e58721386be429dbd02cd4b9dd upstream.

this patch is to enable mes for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1951,6 +1951,7 @@ static int amdgpu_discovery_set_mes_ip_b
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		amdgpu_device_ip_block_add(adev, &mes_v11_0_ip_block);
 		adev->enable_mes = true;
 		adev->enable_mes_kiq = true;
author maintainer
#165 lore raw

PATCH 165/193 drm/amdgpu: set GC 11.0.4 family

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 94ab70685844227b5c9cb9027a5c4acd3b0e4564 upstream.

this patch is to set GC 11.0.4 family.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -2181,6 +2181,7 @@ int amdgpu_discovery_set_ip_blocks(struc
 		adev->family = AMDGPU_FAMILY_GC_11_0_0;
 		break;
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		adev->family = AMDGPU_FAMILY_GC_11_0_1;
 		break;
 	default:
author maintainer
#166 lore raw

PATCH 166/193 drm/amdgpu/discovery: set the APU flag for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit dd2d9c7fd7716838d477e257f43facd68c53d3a9 upstream.

Set the APU flag appropriately for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -2199,6 +2199,7 @@ int amdgpu_discovery_set_ip_blocks(struc
 	case IP_VERSION(10, 3, 6):
 	case IP_VERSION(10, 3, 7):
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		adev->flags |= AMD_IS_APU;
 		break;
 	default:
author maintainer
#167 lore raw

PATCH 167/193 drm/amdgpu: add gfx support for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 1763cb65e870e783e26d2dc9def4edbeadcb1050 upstream.

this patch to add GC 11.0.4 gfx support to gfx11 implementation.

---
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +9 -1
@@ -77,6 +77,10 @@ MODULE_FIRMWARE("amdgpu/gc_11_0_3_pfp.bi
 MODULE_FIRMWARE("amdgpu/gc_11_0_3_me.bin");
 MODULE_FIRMWARE("amdgpu/gc_11_0_3_mec.bin");
 MODULE_FIRMWARE("amdgpu/gc_11_0_3_rlc.bin");
+MODULE_FIRMWARE("amdgpu/gc_11_0_4_pfp.bin");
+MODULE_FIRMWARE("amdgpu/gc_11_0_4_me.bin");
+MODULE_FIRMWARE("amdgpu/gc_11_0_4_mec.bin");
+MODULE_FIRMWARE("amdgpu/gc_11_0_4_rlc.bin");
 
 static const struct soc15_reg_golden golden_settings_gc_11_0_1[] =
 {
@@ -262,6 +266,7 @@ static void gfx_v11_0_init_golden_regist
 {
 	switch (adev->ip_versions[GC_HWIP][0]) {
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		soc15_program_register_sequence(adev,
 						golden_settings_gc_11_0_1,
 						(const u32)ARRAY_SIZE(golden_settings_gc_11_0_1));
@@ -856,6 +861,7 @@ static int gfx_v11_0_gpu_early_init(stru
 		adev->gfx.config.sc_earlyz_tile_fifo_size = 0x4C0;
 		break;
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		adev->gfx.config.max_hw_contexts = 8;
 		adev->gfx.config.sc_prim_fifo_size_frontend = 0x20;
 		adev->gfx.config.sc_prim_fifo_size_backend = 0x100;
@@ -1285,6 +1291,7 @@ static int gfx_v11_0_sw_init(void *handl
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		adev->gfx.me.num_me = 1;
 		adev->gfx.me.num_pipe_per_me = 1;
 		adev->gfx.me.num_queue_per_pipe = 1;
@@ -2486,7 +2493,8 @@ static int gfx_v11_0_wait_for_rlc_autolo
 	for (i = 0; i < adev->usec_timeout; i++) {
 		cp_status = RREG32_SOC15(GC, 0, regCP_STAT);
 
-		if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(11, 0, 1))
+		if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(11, 0, 1) ||
+				adev->ip_versions[GC_HWIP][0] == IP_VERSION(11, 0, 4))
 			bootload_status = RREG32_SOC15(GC, 0,
 					regRLC_RLCS_BOOTLOAD_STATUS_gc_11_0_1);
 		else
author maintainer
#168 lore raw

PATCH 168/193 drm/amdgpu: add gmc v11 support for GC 11.0.4

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit d0ca8248999e4c5b02ac64f40536ff46dc14dda7 upstream.

Add gmc v11 support for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c +1 -0
@@ -749,6 +749,7 @@ static int gmc_v11_0_sw_init(void *handl
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 		adev->num_vmhubs = 2;
 		/*
 		 * To fulfill 4-level page support,
author maintainer
#169 lore raw

PATCH 169/193 drm/amdgpu/discovery: add PSP IP v13.0.11 support

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit 7c1389f1b1228b96e621815e63eaa2e89b9f7511 upstream.

Add PSP IP v13.0.11 ip discovery support.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1638,6 +1638,7 @@ static int amdgpu_discovery_set_psp_ip_b
 	case IP_VERSION(13, 0, 7):
 	case IP_VERSION(13, 0, 8):
 	case IP_VERSION(13, 0, 10):
+	case IP_VERSION(13, 0, 11):
 		amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block);
 		break;
 	case IP_VERSION(13, 0, 4):
author maintainer
#170 lore raw

PATCH 170/193 drm/amdgpu/pm: enable swsmu for SMU IP v13.0.11

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 16412a94364d1dcebded9217ecb693c9659eaabc upstream.

Add the entry to set the ppt functions for SMU IP v13.0.11.

---
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +1 -0
@@ -585,6 +585,7 @@ static int smu_set_funcs(struct amdgpu_d
 		yellow_carp_set_ppt_funcs(smu);
 		break;
 	case IP_VERSION(13, 0, 4):
+	case IP_VERSION(13, 0, 11):
 		smu_v13_0_4_set_ppt_funcs(smu);
 		break;
 	case IP_VERSION(13, 0, 5):
author maintainer
#171 lore raw

PATCH 171/193 drm/amdgpu: add smu 13 support for smu 13.0.11

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 51e7a2168769c2f46edd93a18d4cba4a6d4adb13 upstream.

this patch to add smu 13 support for smu 13.0.11.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c  |    1 +
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c |    2 ++
 2 files changed, 3 insertions(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -1689,6 +1689,7 @@ static int amdgpu_discovery_set_smu_ip_b
 	case IP_VERSION(13, 0, 7):
 	case IP_VERSION(13, 0, 8):
 	case IP_VERSION(13, 0, 10):
+	case IP_VERSION(13, 0, 11):
 		amdgpu_device_ip_block_add(adev, &smu_v13_0_ip_block);
 		break;
 	default:
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +2 -0
@@ -250,6 +250,7 @@ int smu_v13_0_check_fw_status(struct smu
 
 	switch (adev->ip_versions[MP1_HWIP][0]) {
 	case IP_VERSION(13, 0, 4):
+	case IP_VERSION(13, 0, 11):
 		mp1_fw_flags = RREG32_PCIE(MP1_Public |
 					   (smnMP1_V13_0_4_FIRMWARE_FLAGS & 0xffffffff));
 		break;
@@ -303,6 +304,7 @@ int smu_v13_0_check_fw_version(struct sm
 		smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_YELLOW_CARP;
 		break;
 	case IP_VERSION(13, 0, 4):
+	case IP_VERSION(13, 0, 11):
 		smu->smc_driver_if_version = SMU13_DRIVER_IF_VERSION_SMU_V13_0_4;
 		break;
 	case IP_VERSION(13, 0, 5):
author maintainer
#172 lore raw

PATCH 172/193 drm/amdgpu/pm: add GFXOFF control IP version check for SMU IP v13.0.11

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 9f83e61201bb21957e4993736532edad7a11c7fa upstream.

Enable the SMU IP v13.0.11 GFXOFF control

---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +1 -0
@@ -845,6 +845,7 @@ int smu_v13_0_gfx_off_control(struct smu
 	case IP_VERSION(13, 0, 7):
 	case IP_VERSION(13, 0, 8):
 	case IP_VERSION(13, 0, 10):
+	case IP_VERSION(13, 0, 11):
 		if (!(adev->pm.pp_feature & PP_GFXOFF_MASK))
 			return 0;
 		if (enable)
author maintainer
#173 lore raw

PATCH 173/193 drm/amdgpu/soc21: add mode2 asic reset for SMU IP v13.0.11

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit 18ad18853cf2d8b94cef0112ba94f7a7535a9e89 upstream.

Set the default reset method to mode2 for SMU IP v13.0.11

---
 drivers/gpu/drm/amd/amdgpu/soc21.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/soc21.c +1 -0
@@ -325,6 +325,7 @@ soc21_asic_reset_method(struct amdgpu_de
 	case IP_VERSION(13, 0, 10):
 		return AMD_RESET_METHOD_MODE1;
 	case IP_VERSION(13, 0, 4):
+	case IP_VERSION(13, 0, 11):
 		return AMD_RESET_METHOD_MODE2;
 	default:
 		if (amdgpu_dpm_is_baco_supported(adev))
author maintainer
#174 lore raw

PATCH 174/193 drm/amdgpu/pm: use the specific mailbox registers only for SMU IP v13.0.4

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit 069a5af97ce3a1448a3566ce8b63b60e51e19958 upstream.

The SMU IP v13.0.4 ppt interface is shared by IP v13.0.11, they use the different mailbox register offset. So use the specific mailbox registers offset for v13.0.4.

---
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c +14 -3
@@ -1026,6 +1026,15 @@ static const struct pptable_funcs smu_v1
 	.set_gfx_power_up_by_imu = smu_v13_0_set_gfx_power_up_by_imu,
 };
 
+static void smu_v13_0_4_set_smu_mailbox_registers(struct smu_context *smu)
+{
+	struct amdgpu_device *adev = smu->adev;
+
+	smu->param_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_82);
+	smu->msg_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_66);
+	smu->resp_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_90);
+}
+
 void smu_v13_0_4_set_ppt_funcs(struct smu_context *smu)
 {
 	struct amdgpu_device *adev = smu->adev;
@@ -1035,7 +1044,9 @@ void smu_v13_0_4_set_ppt_funcs(struct sm
 	smu->feature_map = smu_v13_0_4_feature_mask_map;
 	smu->table_map = smu_v13_0_4_table_map;
 	smu->is_apu = true;
-	smu->param_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_82);
-	smu->msg_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_66);
-	smu->resp_reg = SOC15_REG_OFFSET(MP1, 0, mmMP1_SMN_C2PMSG_90);
+
+	if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 4))
+		smu_v13_0_4_set_smu_mailbox_registers(smu);
+	else
+		smu_v13_0_set_smu_mailbox_registers(smu);
 }
author maintainer
#175 lore raw

PATCH 175/193 drm/amdgpu/discovery: enable nbio support for NBIO v7.7.1

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 7308ceb44663f40bf9e7373c3b1aa4f7f433d625 upstream.

this patch is to enable nbio support for NBIO v7.7.1.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +1 -0
@@ -2258,6 +2258,7 @@ int amdgpu_discovery_set_ip_blocks(struc
 		adev->nbio.hdp_flush_reg = &nbio_v4_3_hdp_flush_reg;
 		break;
 	case IP_VERSION(7, 7, 0):
+	case IP_VERSION(7, 7, 1):
 		adev->nbio.funcs = &nbio_v7_7_funcs;
 		adev->nbio.hdp_flush_reg = &nbio_v7_7_hdp_flush_reg;
 		break;
author maintainer
#176 lore raw

PATCH 176/193 drm/amdgpu: enable PSP IP v13.0.11 support

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit 2c83e3fd928b9cb1e35340e58d4b1bd2eea23ed6 upstream.

Enable PSP FW loading for PSP IP v13.0.11

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c |    1 +
 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c  |    3 +++
 2 files changed, 4 insertions(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +1 -0
@@ -139,6 +139,7 @@ static int psp_early_init(void *handle)
 	case IP_VERSION(13, 0, 5):
 	case IP_VERSION(13, 0, 8):
 	case IP_VERSION(13, 0, 10):
+	case IP_VERSION(13, 0, 11):
 		psp_v13_0_set_psp_funcs(psp);
 		psp->autoload_supported = true;
 		break;
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +3 -0
@@ -46,6 +46,8 @@ MODULE_FIRMWARE("amdgpu/psp_13_0_7_sos.b
 MODULE_FIRMWARE("amdgpu/psp_13_0_7_ta.bin");
 MODULE_FIRMWARE("amdgpu/psp_13_0_10_sos.bin");
 MODULE_FIRMWARE("amdgpu/psp_13_0_10_ta.bin");
+MODULE_FIRMWARE("amdgpu/psp_13_0_11_toc.bin");
+MODULE_FIRMWARE("amdgpu/psp_13_0_11_ta.bin");
 
 /* For large FW files the time to complete can be very long */
 #define USBC_PD_POLLING_LIMIT_S 240
@@ -102,6 +104,7 @@ static int psp_v13_0_init_microcode(stru
 	case IP_VERSION(13, 0, 3):
 	case IP_VERSION(13, 0, 5):
 	case IP_VERSION(13, 0, 8):
+	case IP_VERSION(13, 0, 11):
 		err = psp_init_toc_microcode(psp, chip_name);
 		if (err)
 			return err;
author maintainer
#177 lore raw

PATCH 177/193 drm/amdgpu: enable GFX IP v11.0.4 CG support

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit f2b91e5a7cc0368709964994ca253781b51a486a upstream.

Add CG support for GFX/MC/HDP/ATHUB/IH/BIF.

---
 drivers/gpu/drm/amd/amdgpu/soc21.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
drivers/gpu/drm/amd/amdgpu/soc21.c +17 -1
@@ -655,7 +655,23 @@ static int soc21_common_early_init(void
 		adev->external_rev_id = adev->rev_id + 0x20;
 		break;
 	case IP_VERSION(11, 0, 4):
-		adev->cg_flags = AMD_CG_SUPPORT_VCN_MGCG |
+		adev->cg_flags =
+			AMD_CG_SUPPORT_GFX_CGCG |
+			AMD_CG_SUPPORT_GFX_CGLS |
+			AMD_CG_SUPPORT_GFX_MGCG |
+			AMD_CG_SUPPORT_GFX_FGCG |
+			AMD_CG_SUPPORT_REPEATER_FGCG |
+			AMD_CG_SUPPORT_GFX_PERF_CLK |
+			AMD_CG_SUPPORT_MC_MGCG |
+			AMD_CG_SUPPORT_MC_LS |
+			AMD_CG_SUPPORT_HDP_MGCG |
+			AMD_CG_SUPPORT_HDP_LS |
+			AMD_CG_SUPPORT_ATHUB_MGCG |
+			AMD_CG_SUPPORT_ATHUB_LS |
+			AMD_CG_SUPPORT_IH_CG |
+			AMD_CG_SUPPORT_BIF_MGCG |
+			AMD_CG_SUPPORT_BIF_LS |
+			AMD_CG_SUPPORT_VCN_MGCG |
 			AMD_CG_SUPPORT_JPEG_MGCG;
 		adev->pg_flags = AMD_PG_SUPPORT_VCN |
 			AMD_PG_SUPPORT_VCN_DPG |
author maintainer
#178 lore raw

PATCH 178/193 drm/amdgpu: enable GFX Power Gating for GC IP v11.0.4

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit a89e2965da6e644729a8ee9c318b7fa9a2990353 upstream.

Enable GFX Power Gating control for GC IP v11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c |    2 ++
 1 file changed, 2 insertions(+)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +2 -0
@@ -5030,6 +5030,7 @@ static void gfx_v11_cntl_power_gating(st
 	if (enable && (adev->pg_flags & AMD_PG_SUPPORT_GFX_PG)) {
 		switch (adev->ip_versions[GC_HWIP][0]) {
 		case IP_VERSION(11, 0, 1):
+		case IP_VERSION(11, 0, 4):
 			WREG32_SOC15(GC, 0, regRLC_PG_DELAY_3, RLC_PG_DELAY_3_DEFAULT_GC_11_0_1);
 			break;
 		default:
@@ -5063,6 +5064,7 @@ static int gfx_v11_0_set_powergating_sta
 		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		gfx_v11_cntl_pg(adev, enable);
 		amdgpu_gfx_off_ctrl(adev, enable);
 		break;
author maintainer
#179 lore raw

PATCH 179/193 drm/amdgpu: enable GFX Clock Gating control for GC IP v11.0.4

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit f9caa237372b106b5e70ba1a4bfd4222eb79ec71 upstream.

Enable GFX IP v11.0.4 CG gate/ungate control.

---
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +1 -0
@@ -5088,6 +5088,7 @@ static int gfx_v11_0_set_clockgating_sta
 	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
+	case IP_VERSION(11, 0, 4):
 	        gfx_v11_0_update_gfx_clock_gating(adev,
 	                        state ==  AMD_CG_STATE_GATE);
 	        break;
author maintainer
#180 lore raw

PATCH 180/193 drm/amdgpu: add tmz support for GC 11.0.1

In reply to Greg Kroah-Hartman

From: Yifan Zhang <[email protected]>

commit 97074216917b4188f0af3e52cc5b3f2b277bbbca upstream.

this patch to add tmz support for GC 11.0.1.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +1 -0
@@ -548,6 +548,7 @@ void amdgpu_gmc_tmz_set(struct amdgpu_de
 	case IP_VERSION(10, 3, 1):
 	/* YELLOW_CARP*/
 	case IP_VERSION(10, 3, 3):
+	case IP_VERSION(11, 0, 1):
 		/* Don't enable it by default yet.
 		 */
 		if (amdgpu_tmz < 1) {
author maintainer
#181 lore raw

PATCH 181/193 drm/amdgpu: add tmz support for GC IP v11.0.4

In reply to Greg Kroah-Hartman

From: Tim Huang <[email protected]>

commit 2aecbe492a3c0bf4c21f78c099a6f6c205fab0c7 upstream.

Add tmz support for GC 11.0.4.

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c |    1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +1 -0
@@ -549,6 +549,7 @@ void amdgpu_gmc_tmz_set(struct amdgpu_de
 	/* YELLOW_CARP*/
 	case IP_VERSION(10, 3, 3):
 	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
 		/* Don't enable it by default yet.
 		 */
 		if (amdgpu_tmz < 1) {
author maintainer
#182 lore raw

PATCH 182/193 drm/amdgpu: correct MEC number for gfx11 APUs

In reply to Greg Kroah-Hartman

From: Lang Yu <[email protected]>

commit 0ddadc3a2208aedb1b27dbb76d0b4e722b5b527a upstream.

There is only one MEC on these APUs.

---
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +9 -2
@@ -1288,10 +1288,8 @@ static int gfx_v11_0_sw_init(void *handl
 
 	switch (adev->ip_versions[GC_HWIP][0]) {
 	case IP_VERSION(11, 0, 0):
-	case IP_VERSION(11, 0, 1):
 	case IP_VERSION(11, 0, 2):
 	case IP_VERSION(11, 0, 3):
-	case IP_VERSION(11, 0, 4):
 		adev->gfx.me.num_me = 1;
 		adev->gfx.me.num_pipe_per_me = 1;
 		adev->gfx.me.num_queue_per_pipe = 1;
@@ -1299,6 +1297,15 @@ static int gfx_v11_0_sw_init(void *handl
 		adev->gfx.mec.num_pipe_per_mec = 4;
 		adev->gfx.mec.num_queue_per_pipe = 4;
 		break;
+	case IP_VERSION(11, 0, 1):
+	case IP_VERSION(11, 0, 4):
+		adev->gfx.me.num_me = 1;
+		adev->gfx.me.num_pipe_per_me = 1;
+		adev->gfx.me.num_queue_per_pipe = 1;
+		adev->gfx.mec.num_mec = 1;
+		adev->gfx.mec.num_pipe_per_mec = 4;
+		adev->gfx.mec.num_queue_per_pipe = 4;
+		break;
 	default:
 		adev->gfx.me.num_me = 1;
 		adev->gfx.me.num_pipe_per_me = 1;
author maintainer
#183 lore raw

PATCH 183/193 s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36

In reply to Greg Kroah-Hartman

From: Masahiro Yamada <[email protected]>

commit a494398bde273143c2352dd373cad8211f7d94b2 upstream.

Nathan Chancellor reports that the s390 vmlinux fails to link with GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv").

It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y.

  $ s390x-linux-gnu-ld --version | head -n1
  GNU ld (GNU Binutils for Debian) 2.35.2
  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig
  $ ./scripts/config -e CONFIG_EXPOLINE
  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig
  $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu-
  `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o
  make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
  make: *** [Makefile:1252: vmlinux] Error 2

arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT:

        .exit.text : {
                EXIT_TEXT
        }

But, at the same time, EXIT_TEXT is thrown away by DISCARD because s390 does not define RUNTIME_DISCARD_EXIT.

I still do not understand why the latter wins after 99cb0d917ffa, but defining RUNTIME_DISCARD_EXIT seems correct because the comment line in arch/s390/kernel/vmlinux.lds.S says:

/*
* .exit.text is discarded at runtime, not link time,
* to deal with references from __bug_table */

Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output sections in scripts") cured this issue, so we cannot reproduce it with binutils 2.36+, but it is better to not rely on it.

---
 arch/s390/kernel/vmlinux.lds.S |    2 ++
 1 file changed, 2 insertions(+)
arch/s390/kernel/vmlinux.lds.S +2 -0
@@ -17,6 +17,8 @@
 /* Handle ro_after_init data on our own. */
 #define RO_AFTER_INIT_DATA
 
+#define RUNTIME_DISCARD_EXIT
+
 #define EMITS_PT_NOTE
 
 #include <asm-generic/vmlinux.lds.h>
author maintainer
#184 lore raw

PATCH 184/193 powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT

In reply to Greg Kroah-Hartman

From: Michael Ellerman <[email protected]>

commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream.

The powerpc linker script explicitly includes .exit.text, because otherwise the link fails due to references from __bug_table and __ex_table. The code is freed (discarded) at runtime along with .init.text and data.

That has worked in the past despite powerpc not defining RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker script (line 410), and the explicit inclusion of .exit.text earlier (line 280) supersedes the discard.

However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") introduced an earlier use of DISCARD as part of the RO_DATA macro (line 136). With binutils < 2.36 that causes the DISCARD directives later in the script to be applied earlier [1], causing .exit.text to actually be discarded at link time, leading to build errors:

'.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in discarded section '.exit.text' of crypto/algboss.o
'.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in discarded section '.exit.text' of drivers/nvdimm/core.o

Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic DISCARDS macro to not include .exit.text at all.

1: https://lore.kernel.org/lkml/[email protected]/

Fixes 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
---
 arch/powerpc/kernel/vmlinux.lds.S |    1 +
 1 file changed, 1 insertion(+)
arch/powerpc/kernel/vmlinux.lds.S +1 -0
@@ -8,6 +8,7 @@
 #define BSS_FIRST_SECTIONS *(.bss.prominit)
 #define EMITS_PT_NOTE
 #define RO_EXCEPTION_TABLE_ALIGN	0
+#define RUNTIME_DISCARD_EXIT
 
 #define SOFT_MASK_TABLE(align)						\
 	. = ALIGN(align);						\
author maintainer
#185 lore raw

PATCH 185/193 powerpc/vmlinux.lds: Dont discard .rela* for relocatable builds

In reply to Greg Kroah-Hartman

From: Michael Ellerman <[email protected]>

commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream.

Relocatable kernels must not discard relocations, they need to be processed at runtime. As such they are included for CONFIG_RELOCATABLE builds in the powerpc linker script (line 340).

However they are also unconditionally discarded later in the script (line 414). Previously that worked because the earlier inclusion superseded the discard.

However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") introduced an earlier use of DISCARD as part of the RO_DATA macro (line 137). With binutils < 2.36 that causes the DISCARD directives later in the script to be applied earlier, causing .rela* to actually be discarded at link time, leading to build warnings and a kernel that doesn't boot:

ld: warning: discarding dynamic section .rela.init.rodata

Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE is disabled.

Fixes 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
---
 arch/powerpc/kernel/vmlinux.lds.S |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
arch/powerpc/kernel/vmlinux.lds.S +4 -1
@@ -411,9 +411,12 @@ SECTIONS
 	DISCARDS
 	/DISCARD/ : {
 		*(*.EMB.apuinfo)
-		*(.glink .iplt .plt .rela* .comment)
+		*(.glink .iplt .plt .comment)
 		*(.gnu.version*)
 		*(.gnu.attributes)
 		*(.eh_frame)
+#ifndef CONFIG_RELOCATABLE
+		*(.rela*)
+#endif
 	}
 }
author maintainer
#186 lore raw

PATCH 186/193 powerpc/vmlinux.lds: Dont discard .comment

In reply to Greg Kroah-Hartman

From: Michael Ellerman <[email protected]>

commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream.

Although the powerpc linker script mentions .comment in the DISCARD section, that has never actually caused it to be discarded, because the earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes .comment.

However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") introduced an earlier use of DISCARD as part of the RO_DATA macro. With binutils < 2.36 that causes the DISCARD directives later in the script to be applied earlier, causing .comment to actually be discarded.

It's confusing to explicitly include and discard .comment, and even more so if the behaviour depends on the toolchain version. So don't discard .comment in order to maintain the existing behaviour in all cases.

Fixes 83a092cf95f2 ("powerpc: Link warning for orphan sections")
---
 arch/powerpc/kernel/vmlinux.lds.S |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/powerpc/kernel/vmlinux.lds.S +1 -1
@@ -411,7 +411,7 @@ SECTIONS
 	DISCARDS
 	/DISCARD/ : {
 		*(*.EMB.apuinfo)
-		*(.glink .iplt .plt .comment)
+		*(.glink .iplt .plt)
 		*(.gnu.version*)
 		*(.gnu.attributes)
 		*(.eh_frame)
author maintainer
#187 lore raw

PATCH 187/193 octeontx2-pf: Avoid use of GFP_KERNEL in atomic context

In reply to Greg Kroah-Hartman

From: Geetha sowjanya <[email protected]>

commit 87b93b678e95c7d93fe6a55b0e0fbda26d8c7760 upstream.

Using GFP_KERNEL in preemption disable context, causing below warning when CONFIG_DEBUG_ATOMIC_SLEEP is enabled.

[   32.542271] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:274
[   32.550883] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper/0
[   32.558707] preempt_count: 1, expected: 0
[   32.562710] RCU nest depth: 0, expected: 0
[   32.566800] CPU: 3 PID: 1 Comm: swapper/0 Tainted: G        W          6.2.0-rc2-00269-gae9dcb91c606 #7
[   32.576188] Hardware name: Marvell CN106XX board (DT)
[   32.581232] Call trace:
[   32.583670]  dump_backtrace.part.0+0xe0/0xf0
[   32.587937]  show_stack+0x18/0x30
[   32.591245]  dump_stack_lvl+0x68/0x84
[   32.594900]  dump_stack+0x18/0x34
[   32.598206]  __might_resched+0x12c/0x160
[   32.602122]  __might_sleep+0x48/0xa0
[   32.605689]  __kmem_cache_alloc_node+0x2b8/0x2e0
[   32.610301]  __kmalloc+0x58/0x190
[   32.613610]  otx2_sq_aura_pool_init+0x1a8/0x314
[   32.618134]  otx2_open+0x1d4/0x9d0

To avoid use of GFP_ATOMIC for memory allocation, disable preemption after all memory allocation is done.

Fixes 4af1b64f80fb ("octeontx2-pf: Fix lmtst ID used in aura free")
---
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +2 -2
@@ -1370,7 +1370,6 @@ int otx2_sq_aura_pool_init(struct otx2_n
 	if (err)
 		goto fail;
 
-	get_cpu();
 	/* Allocate pointers and free them to aura/pool */
 	for (qidx = 0; qidx < hw->tot_tx_queues; qidx++) {
 		pool_id = otx2_get_pool_idx(pfvf, AURA_NIX_SQ, qidx);
@@ -1388,13 +1387,14 @@ int otx2_sq_aura_pool_init(struct otx2_n
 			err = otx2_alloc_rbuf(pfvf, pool, &bufptr);
 			if (err)
 				goto err_mem;
+			get_cpu();
 			pfvf->hw_ops->aura_freeptr(pfvf, pool_id, bufptr);
+			put_cpu();
 			sq->sqb_ptrs[sq->sqb_count++] = (u64)bufptr;
 		}
 	}
 
 err_mem:
-	put_cpu();
 	return err ? -ENOMEM : 0;
 
 fail:
author maintainer
#188 lore raw

PATCH 188/193 net/ulp: use consistent error code when blocking ULP

In reply to Greg Kroah-Hartman

From: Paolo Abeni <[email protected]>

commit 8ccc99362b60c6f27bb46f36fdaaccf4ef0303de upstream.

The referenced commit changed the error code returned by the kernel when preventing a non-established socket from attaching the ktls ULP. Before to such a commit, the user-space got ENOTCONN instead of EINVAL.

The existing self-tests depend on such error code, and the change caused a failure:

RUN global.non_established ...
tls.c:1673:non_established:Expected errno (22) == ENOTCONN (107)
non_established: Test failed at step #3
FAIL global.non_established

In the unlikely event existing applications do the same, address the issue by restoring the prior error code in the above scenario.

Note that the only other ULP performing similar checks at init time - smc_ulp_ops - also fails with ENOTCONN when trying to attach the ULP to a non-established socket.

---
 net/ipv4/tcp_ulp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
net/ipv4/tcp_ulp.c +1 -1
@@ -139,7 +139,7 @@ static int __tcp_set_ulp(struct sock *sk
 	if (sk->sk_socket)
 		clear_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags);
 
-	err = -EINVAL;
+	err = -ENOTCONN;
 	if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN)
 		goto out_err;
 
author maintainer
#189 lore raw

PATCH 189/193 octeontx2-pf: Fix the use of GFP_KERNEL in atomic context on rt

In reply to Greg Kroah-Hartman

From: Kevin Hao <[email protected]>

commit 55ba18dc62deff5910c0fa64486dea1ff20832ff upstream.

The commit 4af1b64f80fb ("octeontx2-pf: Fix lmtst ID used in aura free") uses the get/put_cpu() to protect the usage of percpu pointer in ->aura_freeptr() callback, but it also unnecessarily disable the preemption for the blockable memory allocation. The commit 87b93b678e95 ("octeontx2-pf: Avoid use of GFP_KERNEL in atomic context") tried to fix these sleep inside atomic warnings. But it only fix the one for the non-rt kernel. For the rt kernel, we still get the similar warnings like below.

  BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper/0
  preempt_count: 1, expected: 0
  RCU nest depth: 0, expected: 0
  3 locks held by swapper/0/1:
   #0: ffff800009fc5fe8 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock+0x24/0x30
   #1: ffff000100c276c0 (&mbox->lock){+.+.}-{3:3}, at: otx2_init_hw_resources+0x8c/0x3a4
   #2: ffffffbfef6537e0 (&cpu_rcache->lock){+.+.}-{2:2}, at: alloc_iova_fast+0x1ac/0x2ac
  Preemption disabled at:
  [<ffff800008b1908c>] otx2_rq_aura_pool_init+0x14c/0x284
  CPU: 20 PID: 1 Comm: swapper/0 Tainted: G        W          6.2.0-rc3-rt1-yocto-preempt-rt #1
  Hardware name: Marvell OcteonTX CN96XX board (DT)
  Call trace:
   dump_backtrace.part.0+0xe8/0xf4
   show_stack+0x20/0x30
   dump_stack_lvl+0x9c/0xd8
   dump_stack+0x18/0x34
   __might_resched+0x188/0x224
   rt_spin_lock+0x64/0x110
   alloc_iova_fast+0x1ac/0x2ac
   iommu_dma_alloc_iova+0xd4/0x110
   __iommu_dma_map+0x80/0x144
   iommu_dma_map_page+0xe8/0x260
   dma_map_page_attrs+0xb4/0xc0
   __otx2_alloc_rbuf+0x90/0x150
   otx2_rq_aura_pool_init+0x1c8/0x284
   otx2_init_hw_resources+0xe4/0x3a4
   otx2_open+0xf0/0x610
   __dev_open+0x104/0x224
   __dev_change_flags+0x1e4/0x274
   dev_change_flags+0x2c/0x7c
   ic_open_devs+0x124/0x2f8
   ip_auto_config+0x180/0x42c
   do_one_initcall+0x90/0x4dc
   do_basic_setup+0x10c/0x14c
   kernel_init_freeable+0x10c/0x13c
   kernel_init+0x2c/0x140
   ret_from_fork+0x10/0x20

Of course, we can shuffle the get/put_cpu() to only wrap the invocation of ->aura_freeptr() as what commit 87b93b678e95 does. But there are only two ->aura_freeptr() callbacks, otx2_aura_freeptr() and cn10k_aura_freeptr(). There is no usage of perpcu variable in the otx2_aura_freeptr() at all, so the get/put_cpu() seems redundant to it. We can move the get/put_cpu() into the corresponding callback which really has the percpu variable usage and avoid the sprinkling of get/put_cpu() in several places.

Fixes 4af1b64f80fb ("octeontx2-pf: Fix lmtst ID used in aura free")
---
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c |   11 ++---------
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h |    2 ++
 2 files changed, 4 insertions(+), 9 deletions(-)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +2 -9
@@ -1012,7 +1012,6 @@ static void otx2_pool_refill_task(struct
 	rbpool = cq->rbpool;
 	free_ptrs = cq->pool_ptrs;
 
-	get_cpu();
 	while (cq->pool_ptrs) {
 		if (otx2_alloc_rbuf(pfvf, rbpool, &bufptr)) {
 			/* Schedule a WQ if we fails to free atleast half of the
@@ -1032,7 +1031,6 @@ static void otx2_pool_refill_task(struct
 		pfvf->hw_ops->aura_freeptr(pfvf, qidx, bufptr + OTX2_HEAD_ROOM);
 		cq->pool_ptrs--;
 	}
-	put_cpu();
 	cq->refill_task_sched = false;
 }
 
@@ -1387,9 +1385,7 @@ int otx2_sq_aura_pool_init(struct otx2_n
 			err = otx2_alloc_rbuf(pfvf, pool, &bufptr);
 			if (err)
 				goto err_mem;
-			get_cpu();
 			pfvf->hw_ops->aura_freeptr(pfvf, pool_id, bufptr);
-			put_cpu();
 			sq->sqb_ptrs[sq->sqb_count++] = (u64)bufptr;
 		}
 	}
@@ -1435,21 +1431,18 @@ int otx2_rq_aura_pool_init(struct otx2_n
 	if (err)
 		goto fail;
 
-	get_cpu();
 	/* Allocate pointers and free them to aura/pool */
 	for (pool_id = 0; pool_id < hw->rqpool_cnt; pool_id++) {
 		pool = &pfvf->qset.pool[pool_id];
 		for (ptr = 0; ptr < num_ptrs; ptr++) {
 			err = otx2_alloc_rbuf(pfvf, pool, &bufptr);
 			if (err)
-				goto err_mem;
+				return -ENOMEM;
 			pfvf->hw_ops->aura_freeptr(pfvf, pool_id,
 						   bufptr + OTX2_HEAD_ROOM);
 		}
 	}
-err_mem:
-	put_cpu();
-	return err ? -ENOMEM : 0;
+	return 0;
 fail:
 	otx2_mbox_reset(&pfvf->mbox.mbox, 0);
 	otx2_aura_pool_free(pfvf);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +2 -0
@@ -733,8 +733,10 @@ static inline void cn10k_aura_freeptr(vo
 	u64 ptrs[2];
 
 	ptrs[1] = buf;
+	get_cpu();
 	/* Free only one buffer at time during init and teardown */
 	__cn10k_aura_freeptr(pfvf, aura, ptrs, 2);
+	put_cpu();
 }
 
 /* Alloc pointer from pool/aura */
author maintainer
#190 lore raw

PATCH 190/193 net/mlx5: fix missing mutex_unlock in mlx5_fw_fatal_reporter_err_work()

In reply to Greg Kroah-Hartman

From: Yang Yingliang <[email protected]>

commit 90e7cb78b81543998217b0eb446c067ce2191a79 upstream.

Add missing mutex_unlock() before returning from
mlx5_fw_fatal_reporter_err_work().

Fixes 9078e843efec ("net/mlx5: Avoid recovery in probe flows")
---
 drivers/net/ethernet/mellanox/mlx5/core/health.c |    1 +
 1 file changed, 1 insertion(+)
drivers/net/ethernet/mellanox/mlx5/core/health.c +1 -0
@@ -677,6 +677,7 @@ static void mlx5_fw_fatal_reporter_err_w
 	mutex_lock(&dev->intf_state_mutex);
 	if (test_bit(MLX5_DROP_NEW_HEALTH_WORK, &health->flags)) {
 		mlx5_core_err(dev, "health works are not permitted at this stage\n");
+		mutex_unlock(&dev->intf_state_mutex);
 		return;
 	}
 	mutex_unlock(&dev->intf_state_mutex);
author maintainer
#191 lore raw

PATCH 191/193 block: mq-deadline: Rename deadline_is_seq_writes()

In reply to Greg Kroah-Hartman

From: Damien Le Moal <[email protected]>

commit 3692fec8bb476e8583e559ff5783a6adef306cf2 upstream.

Rename deadline_is_seq_writes() to deadline_is_seq_write() (remove the "s" plural) to more correctly reflect the fact that this function tests a single request, not multiple requests.

Fixes 015d02f48537 ("block: mq-deadline: Do not break sequential write streams to zoned HDDs")
---
 block/mq-deadline.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
block/mq-deadline.c +2 -2
@@ -294,7 +294,7 @@ static inline int deadline_check_fifo(st
 /*
  * Check if rq has a sequential request preceding it.
  */
-static bool deadline_is_seq_writes(struct deadline_data *dd, struct request *rq)
+static bool deadline_is_seq_write(struct deadline_data *dd, struct request *rq)
 {
 	struct request *prev = deadline_earlier_request(rq);
 
@@ -353,7 +353,7 @@ deadline_fifo_request(struct deadline_da
 	list_for_each_entry(rq, &per_prio->fifo_list[DD_WRITE], queuelist) {
 		if (blk_req_can_dispatch_to_zone(rq) &&
 		    (blk_queue_nonrot(rq->q) ||
-		     !deadline_is_seq_writes(dd, rq)))
+		     !deadline_is_seq_write(dd, rq)))
 			goto out;
 	}
 	rq = NULL;
author maintainer
#192 lore raw

PATCH 192/193 Revert "wifi: mac80211: fix memory leak in ieee80211_if_add()"

In reply to Greg Kroah-Hartman

From: Eric Dumazet <[email protected]>

commit 80f8a66dede0a4b4e9e846765a97809c6fe49ce5 upstream.

This reverts commit 13e5afd3d773c6fc6ca2b89027befaaaa1ea7293.

ieee80211_if_free() is already called from free_netdev(ndev) because ndev->priv_destructor == ieee80211_if_free

syzbot reported:

general protection fault, probably for non-canonical address 0xdffffc0000000004: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000020-0x0000000000000027]
CPU: 0 PID: 10041 Comm: syz-executor.0 Not tainted 6.2.0-rc2-syzkaller-00388-g55b98837e37d #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
RIP: 0010:pcpu_get_page_chunk mm/percpu.c:262 [inline]
RIP: 0010:pcpu_chunk_addr_search mm/percpu.c:1619 [inline]
RIP: 0010:free_percpu mm/percpu.c:2271 [inline]
RIP: 0010:free_percpu+0x186/0x10f0 mm/percpu.c:2254
Code: 80 3c 02 00 0f 85 f5 0e 00 00 48 8b 3b 48 01 ef e8 cf b3 0b 00 48 ba 00 00 00 00 00 fc ff df 48 8d 78 20 48 89 f9 48 c1 e9 03 <80> 3c 11 00 0f 85 3b 0e 00 00 48 8b 58 20 48 b8 00 00 00 00 00 fc
RSP: 0018:ffffc90004ba7068 EFLAGS: 00010002
RAX: 0000000000000000 RBX: ffff88823ffe2b80 RCX: 0000000000000004
RDX: dffffc0000000000 RSI: ffffffff81c1f4e7 RDI: 0000000000000020
RBP: ffffe8fffe8fc220 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000000 R11: 1ffffffff2179ab2 R12: ffff8880b983d000
R13: 0000000000000003 R14: 0000607f450fc220 R15: ffff88823ffe2988
FS: 00007fcb349de700(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b32220000 CR3: 000000004914f000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
netdev_run_todo+0x6bf/0x1100 net/core/dev.c:10352
ieee80211_register_hw+0x2663/0x4040 net/mac80211/main.c:1411
mac80211_hwsim_new_radio+0x2537/0x4d80 drivers/net/wireless/mac80211_hwsim.c:4583
hwsim_new_radio_nl+0xa09/0x10f0 drivers/net/wireless/mac80211_hwsim.c:5176
genl_family_rcv_msg_doit.isra.0+0x1e6/0x2d0 net/netlink/genetlink.c:968
genl_family_rcv_msg net/netlink/genetlink.c:1048 [inline]
genl_rcv_msg+0x4ff/0x7e0 net/netlink/genetlink.c:1065
netlink_rcv_skb+0x165/0x440 net/netlink/af_netlink.c:2564
genl_rcv+0x28/0x40 net/netlink/genetlink.c:1076
netlink_unicast_kernel net/netlink/af_netlink.c:1330 [inline]
netlink_unicast+0x547/0x7f0 net/netlink/af_netlink.c:1356
netlink_sendmsg+0x91b/0xe10 net/netlink/af_netlink.c:1932
sock_sendmsg_nosec net/socket.c:714 [inline]
sock_sendmsg+0xd3/0x120 net/socket.c:734
____sys_sendmsg+0x712/0x8c0 net/socket.c:2476
___sys_sendmsg+0x110/0x1b0 net/socket.c:2530
__sys_sendmsg+0xf7/0x1c0 net/socket.c:2559
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x63/0xcd
Fixes 13e5afd3d773 ("wifi: mac80211: fix memory leak in ieee80211_if_add()")
Cc Zhengchao Shao <[email protected]>
Cc Johannes Berg <[email protected]>
---
 net/mac80211/iface.c |    1 -
 1 file changed, 1 deletion(-)
net/mac80211/iface.c +0 -1
@@ -2260,7 +2260,6 @@ int ieee80211_if_add(struct ieee80211_lo
 
 		ret = cfg80211_register_netdevice(ndev);
 		if (ret) {
-			ieee80211_if_free(ndev);
 			free_netdev(ndev);
 			return ret;
 		}
author maintainer
#193 lore raw

PATCH 193/193 soc: qcom: apr: Make qcom,protection-domain optional again

In reply to Greg Kroah-Hartman

From: Stephan Gerhold <[email protected]>

commit 599d41fb8ea8bd2a99ca9525dd69405020e43dda upstream.

APR should not fail if the service device tree node does not have the qcom,protection-domain property, since this functionality does not exist on older platforms such as MSM8916 and MSM8996.

Ignore -EINVAL (returned when the property does not exist) to fix a regression on 6.2-rc1 that prevents audio from working:

qcom,apr remoteproc0:smd-edge.apr_audio_svc.-1.-1:
Failed to read second value of qcom,protection-domain
qcom,apr remoteproc0:smd-edge.apr_audio_svc.-1.-1:
Failed to add apr 3 svc

Fixes 6d7860f5750d ("soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index")
---
 drivers/soc/qcom/apr.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/soc/qcom/apr.c +2 -1
@@ -461,9 +461,10 @@ static int apr_add_device(struct device
 		goto out;
 	}
 
+	/* Protection domain is optional, it does not exist on older platforms */
 	ret = of_property_read_string_index(np, "qcom,protection-domain",
 					    1, &adev->service_path);
-	if (ret < 0) {
+	if (ret < 0 && ret != -EINVAL) {
 		dev_err(dev, "Failed to read second value of qcom,protection-domain\n");
 		goto out;
 	}
Tested-by on the v1 series
#194 lore raw
In reply to Greg Kroah-Hartman

Hi Greg

Quoted 10 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 9 lines
        https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

6.1.8-rc1 tested.

x86_64

build successfully completed.
boot successfully completed.
No dmesg regressions.

Lenovo ThinkPad X1 Nano Gen1(Intel i5-1130G7, arch linux)

Thanks

Tested-by on the v1 series
#195 lore raw
In reply to Greg Kroah-Hartman
Quoted 5 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Quoted 8 lines

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

	https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

Passes all 19 rcutorture scenarios, each tested for 1 hour.

thanks,

- Joel

Quoted 774 lines

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>

    Linux 6.1.8-rc1

Stephan Gerhold <[email protected]>
soc: qcom: apr: Make qcom,protection-domain optional again

Eric Dumazet <[email protected]>

    Revert "wifi: mac80211: fix memory leak in ieee80211_if_add()"

Damien Le Moal <[email protected]>
block: mq-deadline: Rename deadline_is_seq_writes()

Yang Yingliang <[email protected]>
net/mlx5: fix missing mutex_unlock in mlx5_fw_fatal_reporter_err_work()

Kevin Hao <[email protected]>
octeontx2-pf: Fix the use of GFP_KERNEL in atomic context on rt

Paolo Abeni <[email protected]>
net/ulp: use consistent error code when blocking ULP

Geetha sowjanya <[email protected]>
octeontx2-pf: Avoid use of GFP_KERNEL in atomic context

Michael Ellerman <[email protected]>
powerpc/vmlinux.lds: Don't discard .comment

Michael Ellerman <[email protected]>
powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds

Michael Ellerman <[email protected]>
powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT

Masahiro Yamada <[email protected]>
s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36

Lang Yu <[email protected]>
drm/amdgpu: correct MEC number for gfx11 APUs

Tim Huang <[email protected]>
drm/amdgpu: add tmz support for GC IP v11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu: add tmz support for GC 11.0.1

Tim Huang <[email protected]>
drm/amdgpu: enable GFX Clock Gating control for GC IP v11.0.4

Tim Huang <[email protected]>
drm/amdgpu: enable GFX Power Gating for GC IP v11.0.4

Tim Huang <[email protected]>
drm/amdgpu: enable GFX IP v11.0.4 CG support

Tim Huang <[email protected]>
drm/amdgpu: enable PSP IP v13.0.11 support

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: enable nbio support for NBIO v7.7.1

Tim Huang <[email protected]>
drm/amdgpu/pm: use the specific mailbox registers only for SMU IP v13.0.4

Tim Huang <[email protected]>
drm/amdgpu/soc21: add mode2 asic reset for SMU IP v13.0.11

Yifan Zhang <[email protected]>
drm/amdgpu/pm: add GFXOFF control IP version check for SMU IP v13.0.11

Yifan Zhang <[email protected]>
drm/amdgpu: add smu 13 support for smu 13.0.11

Yifan Zhang <[email protected]>
drm/amdgpu/pm: enable swsmu for SMU IP v13.0.11

Tim Huang <[email protected]>
drm/amdgpu/discovery: add PSP IP v13.0.11 support

Yifan Zhang <[email protected]>
drm/amdgpu: add gmc v11 support for GC 11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu: add gfx support for GC 11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: set the APU flag for GC 11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu: set GC 11.0.4 family

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: enable mes support for GC v11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: enable gfx v11 for GC 11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: enable gmc v11 for GC 11.0.4

Yifan Zhang <[email protected]>
drm/amdgpu/discovery: enable soc21 common for GC 11.0.4

Masahiro Yamada <[email protected]>
arch: fix broken BuildID for arm64 and riscv

YingChi Long <[email protected]>
x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN

Kees Cook <[email protected]>
exit: Use READ_ONCE() for all oops/warn limit reads

Kees Cook <[email protected]>
docs: Fix path paste-o for /sys/kernel/warn_count

Kees Cook <[email protected]>
panic: Expose "warn_count" to sysfs

Kees Cook <[email protected]>
panic: Introduce warn_limit

Kees Cook <[email protected]>
panic: Consolidate open-coded panic_on_warn checks

Kees Cook <[email protected]>
exit: Allow oops_limit to be disabled

Kees Cook <[email protected]>
exit: Expose "oops_count" to sysfs

Jann Horn <[email protected]>
exit: Put an upper limit on how often we can oops

Kees Cook <[email protected]>
panic: Separate sysctl logic from CONFIG_SMP

Ard Biesheuvel <[email protected]>
efi: rt-wrapper: Add missing include

Ard Biesheuvel <[email protected]>
arm64: efi: Execute runtime services from a dedicated stack

Alon Zahavi <[email protected]>
fs/ntfs3: Fix attr_punch_hole() null pointer derenference

Paulo Alcantara <[email protected]>
cifs: reduce roundtrips on create/qinfo requests

Alex Deucher <[email protected]>
drm/amd/display: disable S/G display on DCN 3.1.4

Alex Deucher <[email protected]>
drm/amd/display: disable S/G display on DCN 3.1.5

Joshua Ashton <[email protected]>
drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix

Joshua Ashton <[email protected]>
drm/amd/display: Calculate output_color_space after pixel encoding adjustment

hongao <[email protected]>
drm/amd/display: Fix set scaling doesn's work

Nirmoy Das <[email protected]>
drm/i915: Remove unused variable

Thomas Zimmermann <[email protected]>
drm/i915: Allow switching away via vga-switcheroo if uninitialized

Drew Davenport <[email protected]>
drm/i915/display: Check source height is > 0

Sasa Dragic <[email protected]>
drm/i915: re-disable RC6p on Sandy Bridge

jie1zhan <[email protected]>
drm/amdgpu: Correct the power calcultion for Renior/Cezanne.

Lang Yu <[email protected]>
drm/amdgpu: allow multipipe policy on ASICs with one MEC

Christian König <[email protected]>
drm/amdgpu: fix amdgpu_job_free_resources v2

Arnd Bergmann <[email protected]>
ARM: omap1: fix !ARCH_OMAP1_ANY link failures

Krzysztof Kozlowski <[email protected]>
ARM: dts: qcom: apq8084-ifc6540: fix overriding SDHCI

Vishnu Dasa <[email protected]>
VMCI: Use threaded irqs instead of tasklets

Alexander Usyskin <[email protected]>
mei: me: add meteor lake point M DID

Alexander Usyskin <[email protected]>
mei: bus: fix unlink on bus in error path

Khazhismel Kumykov <[email protected]>
gsmi: fix null-deref in gsmi_get_variable

Matthew Howell <[email protected]>
serial: exar: Add support for Sealevel 7xxxC serial cards

Tobias Schramm <[email protected]>
serial: atmel: fix incorrect baudrate setup

Lino Sanfilippo <[email protected]>
serial: amba-pl011: fix high priority character transmission in rs486 mode

Reinette Chatre <[email protected]>
dmaengine: idxd: Do not call DMX TX callbacks during workqueue disable

Reinette Chatre <[email protected]>
dmaengine: idxd: Prevent use after free on completion memory

Reinette Chatre <[email protected]>
dmaengine: idxd: Let probe fail when workqueue cannot be enabled

Mohan Kumar <[email protected]>
dmaengine: tegra210-adma: fix global intr clear

Peter Harliman Liem <[email protected]>
dmaengine: lgm: Move DT parsing after initialization

Ilpo Järvinen <[email protected]>
serial: pch_uart: Pass correct sg to dma_unmap_sg()

Heiner Kallweit <[email protected]>
dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation

Heiner Kallweit <[email protected]>
dt-bindings: phy: g12a-usb2-phy: fix compatible string documentation

Li Jun <[email protected]>
arm64: dts: imx8mp: correct usb clocks

Juhyung Park <[email protected]>
usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210

Maciej Żenczykowski <[email protected]>
usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate()

Chanh Nguyen <[email protected]>
USB: gadget: Add ID numbers to configfs-gadget driver names

Daniel Scally <[email protected]>
usb: gadget: g_webcam: Send color matching descriptor per frame

Prashant Malani <[email protected]>
usb: typec: altmodes/displayport: Fix pin assignment calculation

Prashant Malani <[email protected]>
usb: typec: altmodes/displayport: Add pin assignment helper

ChiYuan Huang <[email protected]>
usb: typec: tcpm: Fix altmode re-registration causes sysfs create fail

Yang Yingliang <[email protected]>
usb: musb: fix error return code in omap2430_probe()

Alexander Stein <[email protected]>
usb: host: ehci-fsl: Fix module alias

Pawel Laszczak <[email protected]>
usb: cdns3: remove fetched trb from cache before dequeuing

Michael Adler <[email protected]>

    USB: serial: cp210x: add SCALANCE LPE-9000 device id

Alan Stern <[email protected]>
USB: gadgetfs: Fix race between mounting and unmounting

Matthieu Baerts <[email protected]>
selftests: mptcp: userspace: validate v4-v6 subflows mix

Matthieu Baerts <[email protected]>
mptcp: netlink: respect v4/v6-only sockets

Paolo Abeni <[email protected]>
mptcp: explicitly specify sock family at subflow creation time

Jens Axboe <[email protected]>
io_uring/poll: don't reissue in case of poll race on multishot request

Jens Axboe <[email protected]>
pktcdvd: check for NULL returna fter calling bio_split_to_limits()

Gaosheng Cui <[email protected]>
tty: fix possible null-ptr-defer in spk_ttyio_release

Krzysztof Kozlowski <[email protected]>
tty: serial: qcom-geni-serial: fix slab-out-of-bounds on RX FIFO buffer

Paul Moore <[email protected]>
bpf: restore the ebpf program ID for BPF_AUDIT_UNLOAD and PERF_BPF_EVENT_PROG_UNLOAD

Ben Dooks <[email protected]>
riscv: dts: sifive: fu740: fix size of pcie 32bit memory

Mika Westerberg <[email protected]>
thunderbolt: Do not call PM runtime functions in tb_retimer_scan()

Utkarsh Patel <[email protected]>
thunderbolt: Do not report errors if on-board retimers are found

Mika Westerberg <[email protected]>
thunderbolt: Use correct function to calculate maximum USB3 link rate

Mika Westerberg <[email protected]>
thunderbolt: Disable XDomain lane 1 only in software connection manager

Enzo Matsumiya <[email protected]>
cifs: do not include page data when checking signature

Filipe Manana <[email protected]>
btrfs: fix race between quota rescan and disable leading to NULL pointer deref

Filipe Manana <[email protected]>
btrfs: fix invalid leaf access due to inline extent during lseek

Qu Wenruo <[email protected]>
btrfs: qgroup: do not warn on record without old_roots populated

Filipe Manana <[email protected]>
btrfs: do not abort transaction on failure to update log root

Filipe Manana <[email protected]>
btrfs: do not abort transaction on failure to write log tree when syncing log

Filipe Manana <[email protected]>
btrfs: add missing setup of log for full commit at add_conflicting_inode()

Filipe Manana <[email protected]>
btrfs: fix directory logging due to race with concurrent index key deletion

Filipe Manana <[email protected]>
btrfs: fix missing error handling when logging directory items

Qu Wenruo <[email protected]>
btrfs: add extra error messages to cover non-ENOMEM errors from device_add_list()

Zach O'Keefe <[email protected]>
mm/MADV_COLLAPSE: don't expand collapse when vm_end is past requested end

David Hildenbrand <[email protected]>
mm/userfaultfd: enable writenotify while userfaultfd-wp is enabled for a VMA

Peter Xu <[email protected]>
mm/hugetlb: pre-allocate pgtable pages for uffd wr-protects

David Hildenbrand <[email protected]>
mm/hugetlb: fix uffd-wp handling for migration entries in hugetlb_change_protection()

David Hildenbrand <[email protected]>
mm/hugetlb: fix PTE marker handling in hugetlb_change_protection()

Haibo Chen <[email protected]>
mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting

Samuel Holland <[email protected]>
mmc: sunxi-mmc: Fix clock refcount imbalance during unbind

Ard Biesheuvel <[email protected]>
ACPI: PRM: Check whether EFI runtime is available

Ian Abbott <[email protected]>
comedi: adv_pci1760: Fix PWM instruction handling

Flavio Suligoi <[email protected]>
usb: core: hub: disable autosuspend for TI TUSB8041

Ola Jeppsson <[email protected]>
misc: fastrpc: Fix use-after-free race condition for maps

Abel Vesa <[email protected]>
misc: fastrpc: Don't remove map on creater_process and device_release

Abel Vesa <[email protected]>
misc: fastrpc: Fix use-after-free and race in fastrpc_map_find

Matthias Kaehlcke <[email protected]>
usb: misc: onboard_hub: Move 'attach' work to the driver

Matthias Kaehlcke <[email protected]>
usb: misc: onboard_hub: Invert driver registration order

Greg Kroah-Hartman <[email protected]>
USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100

Arnd Bergmann <[email protected]>
staging: vchiq_arm: fix enum vchiq_status return types

Duke Xin(辛安文) <[email protected]>
USB: serial: option: add Quectel EM05CN modem

Duke Xin(辛安文) <[email protected]>
USB: serial: option: add Quectel EM05CN (SG) modem

Ali Mirghasemi <[email protected]>
USB: serial: option: add Quectel EC200U modem

Duke Xin(辛安文) <[email protected]>
USB: serial: option: add Quectel EM05-G (RS) modem

Duke Xin(辛安文) <[email protected]>
USB: serial: option: add Quectel EM05-G (CS) modem

Duke Xin(辛安文) <[email protected]>
USB: serial: option: add Quectel EM05-G (GR) modem

Greg Kroah-Hartman <[email protected]>
prlimit: do_prlimit needs to have a speculation check

Mathias Nyman <[email protected]>
xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables

Mathias Nyman <[email protected]>
usb: acpi: add helper to check port lpm capability using acpi _DSM

Mathias Nyman <[email protected]>
xhci: Add a flag to disable USB3 lpm on a xhci root port level.

Mathias Nyman <[email protected]>
xhci: Add update_hub_device override for PCI xHCI hosts

Mathias Nyman <[email protected]>
xhci: Fix null pointer dereference when host dies

Jimmy Hu <[email protected]>
usb: xhci: Check endpoint is valid before dereferencing it

Ricardo Ribalda <[email protected]>
xhci-pci: set the dma max_seg_size

Greg Kroah-Hartman <[email protected]>
Revert "serial: stm32: Merge hard IRQ and threaded IRQ handling into single IRQ handler"

Marek Vasut <[email protected]>
serial: stm32: Merge hard IRQ and threaded IRQ handling into single IRQ handler

Hugh Dickins <[email protected]>
mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma

James Houghton <[email protected]>
hugetlb: unshare some PMDs when splitting VMAs

Zach O'Keefe <[email protected]>
mm/shmem: restore SHMEM_HUGE_DENY precedence over MADV_COLLAPSE

Ryusuke Konishi <[email protected]>
nilfs2: fix general protection fault in nilfs_btree_insert()

Damien Le Moal <[email protected]>
zonefs: Detect append writes at invalid locations

Huacai Chen <[email protected]>
LoongArch: Add HWCAP_LOONGARCH_CPUCFG to elf_hwcap

Shawn.Shao <[email protected]>
Add exception protection processing for vd in axi_chan_handle_err function

Alexey Dobriyan <[email protected]>
proc: fix PIE proc-empty-vm, proc-pid-vm tests

Liam Howlett <[email protected]>
nommu: fix split_vma() map_count error

Liam Howlett <[email protected]>
nommu: fix do_munmap() error path

Liam Howlett <[email protected]>
nommu: fix memory leak in do_mmap() error path

Felix Fietkau <[email protected]>

    wifi: mac80211: fix initialization of rx->link and rx->link_sta

Alexander Wetzel <[email protected]>
wifi: mac80211: sdata can be NULL during AMPDU start

Aloka Dixit <[email protected]>
wifi: mac80211: reset multiple BSSID options in stop_ap()

Felix Fietkau <[email protected]>
wifi: mac80211: fix MLO + AP_VLAN check

Arend van Spriel <[email protected]>
wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices

Krzysztof Kozlowski <[email protected]>
Bluetooth: hci_qca: Fix driver shutdown on closed serdev

Luiz Augusto von Dentz <[email protected]>
Bluetooth: hci_sync: Fix use HCI_OP_LE_READ_BUFFER_SIZE_V2

Arnd Bergmann <[email protected]>
fbdev: omapfb: avoid stack overflow warning

Rob Herring <[email protected]>
of: fdt: Honor CONFIG_CMDLINE* even without /chosen node, take 2

Zhang Rui <[email protected]>
perf/x86/rapl: Add support for Intel Emerald Rapids

Zhang Rui <[email protected]>
perf/x86/rapl: Add support for Intel Meteor Lake

Aaron Thompson <[email protected]>
memblock tests: Fix compilation error.

Paulo Alcantara <[email protected]>
cifs: fix race in assemble_neg_contexts()

Chris Wilson <[email protected]>
perf/x86/rapl: Treat Tigerlake like Icelake

Jaegeuk Kim <[email protected]>
f2fs: let's avoid panic if extent_tree is not created

Mikulas Patocka <[email protected]>
x86/asm: Fix an assembler warning with current binutils

Qu Wenruo <[email protected]>
btrfs: always report error in run_one_delayed_ref()

Po-Hsu Lin <[email protected]>
selftests: net: fix cmsg_so_mark.sh test hang

Jiri Slaby (SUSE) <[email protected]>
RDMA/srp: Move large values to a new enum for gcc13

Kui-Feng Lee <[email protected]>
bpf: keep a reference to the mm, in case the task is dead.

Chunhao Lin <[email protected]>
r8169: fix dmar pte write access is not set error

Chunhao Lin <[email protected]>
r8169: move rtl_wol_enable_rx() and rtl_prepare_power_down()

Daniil Tatianin <[email protected]>
net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats

Cindy Lu <[email protected]>
vdpa_sim_net: should not drop the multicast/broadcast packet

Harshit Mogalapalli <[email protected]>
vduse: Validate vq_num in vduse_validate_config()

Angus Chen <[email protected]>
virtio_pci: modify ENOENT to EINVAL

Eli Cohen <[email protected]>
vdpa/mlx5: Avoid overwriting CVQ iotlb

Eli Cohen <[email protected]>
vdpa/mlx5: Avoid using reslock in event_handler

Eli Cohen <[email protected]>
vdpa/mlx5: Return error on vlan ctrl commands if not supported

Ricardo Cañuelo <[email protected]>
tools/virtio: initialize spinlocks in vring_test.c

Anuradha Weeraman <[email protected]>
net: ethernet: marvell: octeontx2: Fix uninitialized variable warning

Hao Sun <[email protected]>
selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID

Olga Kornievskaia <[email protected]>
pNFS/filelayout: Fix coalescing test for single DS

Johannes Berg <[email protected]>
wifi: iwlwifi: fw: skip PPAG for JF

Naohiro Aota <[email protected]>
btrfs: fix trace event name typo for FLUSH_DELAYED_REFS

Christian König <[email protected]>
dma-buf: fix dma_buf_export init order v2

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

Diffstat:

 Documentation/ABI/testing/sysfs-kernel-oops_count  |   6 +
 Documentation/ABI/testing/sysfs-kernel-warn_count  |   6 +
 Documentation/admin-guide/sysctl/kernel.rst        |  19 ++
 ...2a-usb2-phy.yaml => amlogic,g12a-usb2-phy.yaml} |   8 +-
 ...ie-phy.yaml => amlogic,g12a-usb3-pcie-phy.yaml} |   6 +-
 MAINTAINERS                                        |   2 +
 Makefile                                           |   4 +-
 arch/arm/boot/dts/qcom-apq8084-ifc6540.dts         |  20 +-
 arch/arm/boot/dts/qcom-apq8084.dtsi                |   4 +-
 arch/arm/mach-omap1/Kconfig                        |   5 +-
 arch/arm/mach-omap1/Makefile                       |   4 -
 arch/arm/mach-omap1/io.c                           |  32 ++-
 arch/arm/mach-omap1/mcbsp.c                        |  21 --
 arch/arm/mach-omap1/pm.h                           |   7 -
 arch/arm64/boot/dts/freescale/imx8mp.dtsi          |  12 +-
 arch/arm64/include/asm/efi.h                       |   3 +
 arch/arm64/kernel/efi-rt-wrapper.S                 |  14 +-
 arch/arm64/kernel/efi.c                            |  27 +++
 arch/loongarch/kernel/cpu-probe.c                  |   2 +-
 arch/powerpc/kernel/vmlinux.lds.S                  |   6 +-
 arch/riscv/boot/dts/sifive/fu740-c000.dtsi         |   2 +-
 arch/s390/kernel/vmlinux.lds.S                     |   2 +
 arch/x86/events/rapl.c                             |   5 +
 arch/x86/kernel/fpu/init.c                         |   7 +-
 arch/x86/lib/iomap_copy_64.S                       |   2 +-
 block/mq-deadline.c                                |   4 +-
 drivers/accessibility/speakup/spk_ttyio.c          |   3 +
 drivers/acpi/prmt.c                                |  10 +
 drivers/block/pktcdvd.c                            |   2 +
 drivers/bluetooth/hci_qca.c                        |   7 +
 drivers/comedi/drivers/adv_pci1760.c               |   2 +-
 drivers/dma-buf/dma-buf-sysfs-stats.c              |   7 +-
 drivers/dma-buf/dma-buf-sysfs-stats.h              |   4 +-
 drivers/dma-buf/dma-buf.c                          |  84 ++++----
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c     |   6 +
 drivers/dma/idxd/device.c                          |  16 +-
 drivers/dma/lgm/lgm-dma.c                          |  10 +-
 drivers/dma/tegra210-adma.c                        |   2 +-
 drivers/firmware/google/gsmi.c                     |   7 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c      |   9 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c            |   3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c            |   2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c            |  10 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c            |   1 +
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c             |  22 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c             |   1 +
 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c             |   3 +
 drivers/gpu/drm/amd/amdgpu/soc21.c                 |  19 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |  10 +-
 .../gpu/drm/amd/display/dc/core/dc_hw_sequencer.c  |   4 +-
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c          |   1 +
 drivers/gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c    |   7 +-
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c     |   3 +
 .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c   |  17 +-
 drivers/gpu/drm/i915/display/skl_universal_plane.c |   2 +-
 drivers/gpu/drm/i915/i915_driver.c                 |   5 +-
 drivers/gpu/drm/i915/i915_pci.c                    |   3 +-
 drivers/gpu/drm/i915/i915_switcheroo.c             |   6 +-
 drivers/infiniband/ulp/srp/ib_srp.h                |   8 +-
 drivers/misc/fastrpc.c                             |  67 ++++---
 drivers/misc/mei/bus.c                             |  12 +-
 drivers/misc/mei/hw-me-regs.h                      |   2 +
 drivers/misc/mei/pci-me.c                          |   2 +
 drivers/misc/vmw_vmci/vmci_guest.c                 |  49 ++---
 drivers/mmc/host/sdhci-esdhc-imx.c                 |  22 +-
 drivers/mmc/host/sunxi-mmc.c                       |   8 +-
 .../net/ethernet/marvell/octeontx2/af/mcs_rvu_if.c |   2 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.c   |  11 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.h   |   2 +
 drivers/net/ethernet/mellanox/mlx5/core/health.c   |   1 +
 drivers/net/ethernet/realtek/r8169_main.c          |  58 +++---
 .../wireless/broadcom/brcm80211/brcmfmac/pcie.c    |   2 +-
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c       |   5 +
 drivers/of/fdt.c                                   |  28 +--
 drivers/soc/qcom/apr.c                             |   3 +-
 .../include/linux/raspberrypi/vchiq.h              |   2 +-
 .../vc04_services/interface/vchiq_arm/vchiq_arm.h  |   4 +-
 drivers/thunderbolt/retimer.c                      |  20 +-
 drivers/thunderbolt/tb.c                           |  20 +-
 drivers/thunderbolt/tunnel.c                       |   2 +-
 drivers/thunderbolt/xdomain.c                      |  17 +-
 drivers/tty/serial/8250/8250_exar.c                |  14 ++
 drivers/tty/serial/amba-pl011.c                    |   8 +-
 drivers/tty/serial/atmel_serial.c                  |   8 +-
 drivers/tty/serial/pch_uart.c                      |   2 +-
 drivers/tty/serial/qcom_geni_serial.c              |  18 +-
 drivers/usb/cdns3/cdns3-gadget.c                   |  12 ++
 drivers/usb/core/hub.c                             |  13 ++
 drivers/usb/core/usb-acpi.c                        |  65 ++++++
 drivers/usb/gadget/configfs.c                      |  12 +-
 drivers/usb/gadget/function/f_ncm.c                |   4 +-
 drivers/usb/gadget/legacy/inode.c                  |  28 ++-
 drivers/usb/gadget/legacy/webcam.c                 |   3 +
 drivers/usb/host/ehci-fsl.c                        |   2 +-
 drivers/usb/host/xhci-pci.c                        |  45 +++++
 drivers/usb/host/xhci-ring.c                       |   5 +-
 drivers/usb/host/xhci.c                            |  18 +-
 drivers/usb/host/xhci.h                            |   5 +
 drivers/usb/misc/iowarrior.c                       |   2 +-
 drivers/usb/misc/onboard_usb_hub.c                 |  18 +-
 drivers/usb/musb/omap2430.c                        |   4 +-
 drivers/usb/serial/cp210x.c                        |   1 +
 drivers/usb/serial/option.c                        |  17 ++
 drivers/usb/storage/uas-detect.h                   |  13 ++
 drivers/usb/storage/unusual_uas.h                  |   7 -
 drivers/usb/typec/altmodes/displayport.c           |  22 +-
 drivers/usb/typec/tcpm/tcpm.c                      |   7 +-
 drivers/vdpa/mlx5/core/mlx5_vdpa.h                 |   5 +-
 drivers/vdpa/mlx5/core/mr.c                        |  44 ++--
 drivers/vdpa/mlx5/net/mlx5_vnet.c                  |  68 ++-----
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c               |   3 +
 drivers/vdpa/vdpa_user/vduse_dev.c                 |   3 +
 drivers/video/fbdev/omap2/omapfb/dss/dsi.c         |  28 ++-
 drivers/virtio/virtio_pci_modern.c                 |   2 +-
 fs/btrfs/disk-io.c                                 |   9 +-
 fs/btrfs/extent-tree.c                             |   7 +-
 fs/btrfs/file.c                                    |  13 +-
 fs/btrfs/qgroup.c                                  |  39 +++-
 fs/btrfs/tree-log.c                                |  47 +++--
 fs/btrfs/volumes.c                                 |  11 +-
 fs/cifs/connect.c                                  |  16 --
 fs/cifs/inode.c                                    |   6 -
 fs/cifs/misc.c                                     |  45 -----
 fs/cifs/smb2inode.c                                |  45 +++--
 fs/cifs/smb2ops.c                                  |  28 ++-
 fs/cifs/smb2pdu.c                                  |  26 ++-
 fs/f2fs/extent_cache.c                             |   3 +-
 fs/nfs/filelayout/filelayout.c                     |   8 +
 fs/nilfs2/btree.c                                  |  15 +-
 fs/ntfs3/attrib.c                                  |   2 +-
 fs/userfaultfd.c                                   |  28 ++-
 fs/zonefs/super.c                                  |  22 ++
 include/asm-generic/vmlinux.lds.h                  |   5 +
 include/linux/panic.h                              |   1 +
 include/linux/soc/ti/omap1-io.h                    |   4 +-
 include/linux/usb.h                                |   3 +
 include/trace/events/btrfs.h                       |   2 +-
 io_uring/poll.c                                    |   6 +-
 kernel/bpf/offload.c                               |   3 -
 kernel/bpf/syscall.c                               |   6 +-
 kernel/bpf/task_iter.c                             |  39 ++--
 kernel/exit.c                                      |  62 ++++++
 kernel/kcsan/report.c                              |   3 +-
 kernel/panic.c                                     |  48 ++++-
 kernel/sched/core.c                                |   3 +-
 kernel/sys.c                                       |   2 +
 lib/ubsan.c                                        |   3 +-
 mm/hugetlb.c                                       |  95 ++++++---
 mm/kasan/report.c                                  |   4 +-
 mm/kfence/report.c                                 |   3 +-
 mm/khugepaged.c                                    |  16 +-
 mm/mmap.c                                          |   4 +
 mm/nommu.c                                         |   9 +-
 mm/shmem.c                                         |   6 +-
 net/bluetooth/hci_sync.c                           |   6 +-
 net/ethtool/ioctl.c                                |   3 +-
 net/ipv4/tcp_ulp.c                                 |   2 +-
 net/mac80211/agg-tx.c                              |   6 +-
 net/mac80211/cfg.c                                 |   7 +
 net/mac80211/driver-ops.c                          |   3 +
 net/mac80211/iface.c                               |   5 +-
 net/mac80211/rx.c                                  | 222 +++++++++------------
 net/mptcp/pm.c                                     |  25 +++
 net/mptcp/pm_userspace.c                           |   7 +
 net/mptcp/protocol.c                               |   2 +-
 net/mptcp/protocol.h                               |   6 +-
 net/mptcp/subflow.c                                |   9 +-
 tools/testing/memblock/.gitignore                  |   1 +
 tools/testing/memblock/Makefile                    |   3 +-
 .../selftests/bpf/prog_tests/jeq_infer_not_null.c  |   9 +
 .../selftests/bpf/progs/jeq_infer_not_null_fail.c  |  42 ++++
 tools/testing/selftests/net/cmsg_sender.c          |   2 +-
 tools/testing/selftests/net/mptcp/userspace_pm.sh  |  47 +++++
 tools/testing/selftests/proc/proc-empty-vm.c       |  12 +-
 tools/testing/selftests/proc/proc-pid-vm.c         |   9 +-
 tools/virtio/vringh_test.c                         |   2 +
 176 files changed, 1644 insertions(+), 854 deletions(-)
Tested-by on the v1 series
#196 lore raw
In reply to Greg Kroah-Hartman
Quoted 4 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Hi Greg,

6.1.8-rc1 tested.

Run tested on:
- Allwinner H6 (Tanix TX6)
- Intel Alder Lake x86_64 (nuc12 i7-1260P)

In addition - build tested for:
- Allwinner A64
- Allwinner H3
- Allwinner H5
- NXP iMX6
- NXP iMX8
- Qualcomm Dragonboard
- Rockchip RK3288
- Rockchip RK3328
- Rockchip RK3399pro
- Samsung Exynos

--
Rudi

Tested-by on the v1 series
#197 lore raw
In reply to Greg Kroah-Hartman

Hey Greg,

Quoted 5 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Quoted 8 lines

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

	https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

For our RISC-V stuff, LGTM.

Thanks,
Conor.

#198 lore raw
In reply to Greg Kroah-Hartman
Quoted 10 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 8 lines
        https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

Bisection points to this commit,
arch: fix broken BuildID for arm64 and riscv commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream.

Ref:
upstream discussion thread,
https://lore.kernel.org/all/[email protected]/

Steps to reproduce:
# To install tuxmake on your system globally:

# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.
# Original tuxmake command with fragments listed below.

tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

Build log links,
https://storage.tuxsuite.com/public/linaro/lkft/builds/2KgeCQc3ZdltaEFoi0CwyJlUcuk/

--
Linaro LKFT
https://lkft.linaro.org

#199 lore raw
Quoted 22 lines · Naresh Kamboju
Quoted 10 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 8 lines
        https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

Quoted 7 lines

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +1 -0
index 3161b9ccd2a5..b6276a3521d7 100644
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

My guess is build environment is using ld < 2.36??
and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Regards,

--Tom

Quoted 34 lines

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

Bisection points to this commit,
arch: fix broken BuildID for arm64 and riscv commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream.

Ref:
upstream discussion thread,
https://lore.kernel.org/all/[email protected]/

Steps to reproduce:
# To install tuxmake on your system globally:

# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.
# Original tuxmake command with fragments listed below.

tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

Build log links,
https://storage.tuxsuite.com/public/linaro/lkft/builds/2KgeCQc3ZdltaEFoi0CwyJlUcuk/

--
Linaro LKFT
https://lkft.linaro.org

#200 lore raw
Quoted 53 lines · Tom Saeger
Quoted 22 lines · Naresh Kamboju
Quoted 10 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 8 lines
        https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

Quoted 7 lines

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +1 -0
index 3161b9ccd2a5..b6276a3521d7 100644
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

My guess is build environment is using ld < 2.36??
and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Quoted 13 lines

Regards,

--Tom

Quoted 9 lines

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

This is also occurring in latest upstream:

❯ git describe HEAD
v6.2-rc5-13-g2475bf0250de

❯ tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

.exit.text' referenced in section __bug_table' of crypto/algboss.o: defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o make[2]: *** [/home2/tsaeger/linux/linux-upstream/scripts/Makefile.vmlinux:35: vmlinux] Error 1
make[2]: Target '__default' not remade because of errors.
make[1]: *** [/home2/tsaeger/linux/linux-upstream/Makefile:1264: vmlinux] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:242: __sub-make] Error 2
make: Target '__all' not remade because of errors.

FWIW, the above patch resolves this.
How many more architectures need something similar?

Quoted 25 lines
Quoted 25 lines

Bisection points to this commit,
arch: fix broken BuildID for arm64 and riscv commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream.

Ref:
upstream discussion thread,
https://lore.kernel.org/all/[email protected]/

Steps to reproduce:
# To install tuxmake on your system globally:

# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.
# Original tuxmake command with fragments listed below.

tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

Build log links,
https://storage.tuxsuite.com/public/linaro/lkft/builds/2KgeCQc3ZdltaEFoi0CwyJlUcuk/

--
Linaro LKFT
https://lkft.linaro.org

#201 lore raw

Hi Tom,

Quoted 50 lines · Tom Saeger
Quoted 33 lines · Tom Saeger
Quoted 9 lines · Naresh Kamboju

On Sun, 22 Jan 2023 at 20:51, Greg Kroah-Hartman

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +1 -0
index 3161b9ccd2a5..b6276a3521d7 100644
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

My guess is build environment is using ld < 2.36??
and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Quoted 13 lines

Regards,

--Tom

Quoted 9 lines

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

Quoted 1 line

This is also occurring in latest upstream:

Right !
build/gcc-8-dreamcast_defconfig
build/gcc-8-microdev_defconfig

These build errors started from v6.2-rc2 on the mainline [1] & [2].

Quoted 16 lines

❯ git describe HEAD
v6.2-rc5-13-g2475bf0250de

❯ tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

.exit.text' referenced in section __bug_table' of crypto/algboss.o: defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o make[2]: *** [/home2/tsaeger/linux/linux-upstream/scripts/Makefile.vmlinux:35: vmlinux] Error 1
make[2]: Target '__default' not remade because of errors.
make[1]: *** [/home2/tsaeger/linux/linux-upstream/Makefile:1264: vmlinux] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:242: __sub-make] Error 2
make: Target '__all' not remade because of errors.

Quoted 1 line

FWIW, the above patch resolves this.

Yes. Tested and confirmed it fixes the reported problem.

Quoted 1 line

How many more architectures need something similar?

Now I see it on sh with gcc-8 only on the mainline.

OTOH,
It was noticed on earlier stable-rc 5.4 for x86, i386, powerpc, sh and s390.

git_describe : v5.4.228-679-g79cbaf4448f3
kernel_version: 5.4.230-rc1

Regressions found on sh: [1] & [2] mainline and below
- build/gcc-8-dreamcast_defconfig
- build/gcc-8-microdev_defconfig

Regressions found on i386: [3]
- build/gcc-8-i386_defconfig

Regressions found on powerpc: [4]
- build/gcc-8-mpc83xx_defconfig
- build/gcc-8-ppc64e_defconfig
- build/gcc-8-maple_defconfig
- build/gcc-8-ppc6xx_defconfig
- build/gcc-8-defconfig
- build/gcc-8-tqm8xx_defconfig
- build/gcc-8-cell_defconfig

Regressions found on s390: [5]
- build/gcc-8-defconfig-fe40093d

Regressions found on x86_64: [6]
- build/gcc-8-x86_64_defconfig

[1] https://qa-reports.linaro.org/lkft/linux-mainline-master/build/v6.2-rc5-20-g7bf70dbb1882/testrun/14340424/suite/build/test/gcc-8-microdev_defconfig/history/?page=3
[2] https://qa-reports.linaro.org/lkft/linux-mainline-master/build/v6.2-rc5-20-g7bf70dbb1882/testrun/14340393/suite/build/test/gcc-8-dreamcast_defconfig/history/?page=3

[3] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304065/suite/build/test/gcc-8-i386_defconfig/history/
[4] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304362/suite/build/tests/
[5] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304530/suite/build/tests/
[6] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304610/suite/build/test/gcc-8-x86_64_defconfig/history/

stable-rc report on 5.4:
https://lore.kernel.org/stable/Y85tO%2FmJOxIaWH4c@debian/T/#m6b1fdc9bcfc15944e26e3cdd6b1310c878251999

Best regards
Naresh Kamboju

#202 lore raw
Quoted 105 lines · Naresh Kamboju

Hi Tom,

Quoted 50 lines · Tom Saeger
Quoted 33 lines · Tom Saeger
Quoted 9 lines · Naresh Kamboju

On Sun, 22 Jan 2023 at 20:51, Greg Kroah-Hartman

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +1 -0
index 3161b9ccd2a5..b6276a3521d7 100644
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

My guess is build environment is using ld < 2.36??
and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Quoted 13 lines

Regards,

--Tom

Quoted 9 lines

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

Quoted 1 line

This is also occurring in latest upstream:

Right !
build/gcc-8-dreamcast_defconfig
build/gcc-8-microdev_defconfig

These build errors started from v6.2-rc2 on the mainline [1] & [2].

Quoted 16 lines

❯ git describe HEAD
v6.2-rc5-13-g2475bf0250de

❯ tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

.exit.text' referenced in section __bug_table' of crypto/algboss.o: defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o make[2]: *** [/home2/tsaeger/linux/linux-upstream/scripts/Makefile.vmlinux:35: vmlinux] Error 1
make[2]: Target '__default' not remade because of errors.
make[1]: *** [/home2/tsaeger/linux/linux-upstream/Makefile:1264: vmlinux] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:242: __sub-make] Error 2
make: Target '__all' not remade because of errors.

Quoted 1 line

FWIW, the above patch resolves this.

Yes. Tested and confirmed it fixes the reported problem.

Quoted 1 line

How many more architectures need something similar?

Now I see it on sh with gcc-8 only on the mainline.

OTOH,
It was noticed on earlier stable-rc 5.4 for x86, i386, powerpc, sh and s390.

git_describe : v5.4.228-679-g79cbaf4448f3
kernel_version: 5.4.230-rc1

Regressions found on sh: [1] & [2] mainline and below
- build/gcc-8-dreamcast_defconfig
- build/gcc-8-microdev_defconfig

Regressions found on i386: [3]
- build/gcc-8-i386_defconfig

Regressions found on powerpc: [4]
- build/gcc-8-mpc83xx_defconfig
- build/gcc-8-ppc64e_defconfig
- build/gcc-8-maple_defconfig
- build/gcc-8-ppc6xx_defconfig
- build/gcc-8-defconfig
- build/gcc-8-tqm8xx_defconfig
- build/gcc-8-cell_defconfig

Quoted 5 lines

Regressions found on s390: [5]
- build/gcc-8-defconfig-fe40093d

Regressions found on x86_64: [6]
- build/gcc-8-x86_64_defconfig

v5.4 needs:
84d5f77fc2ee ("x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS")

which didn't hit Linus's tree until: v5.7-rc1~164^2~1 This explains why v5.4 blew-up and v5.10 didn't.

I'm testing the following for v5.4

84d5f77fc2ee ("x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS") This needed a little massaging to apply.

99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")
07b050f9290e ("powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds")
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36")
+ the arch/sh patch https://lore.kernel.org/all/9166a8abdc0f979e50377e61780a4bba1dfa2f52.1674518464.git.tom.saeger@oracle.com/

I'd be grateful if you could confirm - so I can send this full series to Greg.

If you'd rather - I can send the patch-series now for testing?

Regards,

--Tom

Quoted 15 lines

[1] https://qa-reports.linaro.org/lkft/linux-mainline-master/build/v6.2-rc5-20-g7bf70dbb1882/testrun/14340424/suite/build/test/gcc-8-microdev_defconfig/history/?page=3
[2] https://qa-reports.linaro.org/lkft/linux-mainline-master/build/v6.2-rc5-20-g7bf70dbb1882/testrun/14340393/suite/build/test/gcc-8-dreamcast_defconfig/history/?page=3

[3] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304065/suite/build/test/gcc-8-i386_defconfig/history/
[4] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304362/suite/build/tests/
[5] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304530/suite/build/tests/
[6] https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.228-679-g79cbaf4448f3/testrun/14304610/suite/build/test/gcc-8-x86_64_defconfig/history/

stable-rc report on 5.4:
https://lore.kernel.org/stable/Y85tO%2FmJOxIaWH4c@debian/T/#m6b1fdc9bcfc15944e26e3cdd6b1310c878251999

Best regards
Naresh Kamboju

#203 lore raw
Quoted 131 lines · Tom Saeger
Quoted 105 lines · Naresh Kamboju

Hi Tom,

Quoted 50 lines · Tom Saeger
Quoted 33 lines · Tom Saeger
Quoted 9 lines · Naresh Kamboju

On Sun, 22 Jan 2023 at 20:51, Greg Kroah-Hartman

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +1 -0
index 3161b9ccd2a5..b6276a3521d7 100644
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

My guess is build environment is using ld < 2.36??
and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Quoted 13 lines

Regards,

--Tom

Quoted 9 lines

Build error logs:
.exit.text' referenced in section __bug_table' of crypto/algboss.o:
defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o
make[2]: *** [/builds/linux/scripts/Makefile.vmlinux:34: vmlinux] Error 1

Quoted 1 line

This is also occurring in latest upstream:

Right !
build/gcc-8-dreamcast_defconfig
build/gcc-8-microdev_defconfig

These build errors started from v6.2-rc2 on the mainline [1] & [2].

Quoted 16 lines

❯ git describe HEAD
v6.2-rc5-13-g2475bf0250de

❯ tuxmake --runtime podman --target-arch sh --toolchain gcc-8 --kconfig microdev_defconfig

.exit.text' referenced in section __bug_table' of crypto/algboss.o: defined in discarded section .exit.text' of crypto/algboss.o .exit.text' referenced in section __bug_table' of drivers/char/hw_random/core.o: defined in discarded section .exit.text' of drivers/char/hw_random/core.o make[2]: *** [/home2/tsaeger/linux/linux-upstream/scripts/Makefile.vmlinux:35: vmlinux] Error 1
make[2]: Target '__default' not remade because of errors.
make[1]: *** [/home2/tsaeger/linux/linux-upstream/Makefile:1264: vmlinux] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:242: __sub-make] Error 2
make: Target '__all' not remade because of errors.

Quoted 1 line

FWIW, the above patch resolves this.

Yes. Tested and confirmed it fixes the reported problem.

Quoted 1 line

How many more architectures need something similar?

Now I see it on sh with gcc-8 only on the mainline.

OTOH,
It was noticed on earlier stable-rc 5.4 for x86, i386, powerpc, sh and s390.

git_describe : v5.4.228-679-g79cbaf4448f3
kernel_version: 5.4.230-rc1

Regressions found on sh: [1] & [2] mainline and below
- build/gcc-8-dreamcast_defconfig
- build/gcc-8-microdev_defconfig

Regressions found on i386: [3]
- build/gcc-8-i386_defconfig

Regressions found on powerpc: [4]
- build/gcc-8-mpc83xx_defconfig
- build/gcc-8-ppc64e_defconfig
- build/gcc-8-maple_defconfig
- build/gcc-8-ppc6xx_defconfig
- build/gcc-8-defconfig
- build/gcc-8-tqm8xx_defconfig
- build/gcc-8-cell_defconfig

Quoted 5 lines

Regressions found on s390: [5]
- build/gcc-8-defconfig-fe40093d

Regressions found on x86_64: [6]
- build/gcc-8-x86_64_defconfig

v5.4 needs:
84d5f77fc2ee ("x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS")

which didn't hit Linus's tree until: v5.7-rc1~164^2~1 This explains why v5.4 blew-up and v5.10 didn't.

I'm testing the following for v5.4

84d5f77fc2ee ("x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS") This needed a little massaging to apply.

99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")
07b050f9290e ("powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds")
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36")
+ the arch/sh patch https://lore.kernel.org/all/9166a8abdc0f979e50377e61780a4bba1dfa2f52.1674518464.git.tom.saeger@oracle.com/

Quoted 4 lines

I'd be grateful if you could confirm - so I can send this full series to Greg.

If you'd rather - I can send the patch-series now for testing?

Please send your repo and branch. I will pick up and run tests on it.

- Naresh

Tested-by Linux Kernel Functional Testing Tested-by
#204 lore raw
In reply to Tom Saeger
Quoted 39 lines · Tom Saeger
Quoted 22 lines · Naresh Kamboju
Quoted 10 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 8 lines
        https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

Quoted 7 lines

Results from Linaro’s test farm.

* sh, build
- gcc-8-dreamcast_defconfig
- gcc-8-microdev_defconfig

Naresh, any chance you could test again adding the following:

arch/sh/kernel/vmlinux.lds.S +0 -0
index 3161b9ccd2a5..b6276a3521d7 100644

arch/sh/kernel/vmlinux.lds.S line 10

Quoted 7 lines
arch/sh/kernel/vmlinux.lds.S +1 -0
@@ -4,6 +4,7 @@
  * Written by Niibe Yutaka and Paul Mundt
  */
 OUTPUT_ARCH(sh)
+#define RUNTIME_DISCARD_EXIT
 #include <asm/thread_info.h>
 #include <asm/cache.h>
 #include <asm/vmlinux.lds.h>

Above patch fixes the reported problem.

Quoted 2 lines

My guess is build environment is using ld < 2.36??

"ld": "GNU ld (GNU Binutils for Debian) 2.31.1",

However, we have been building with gcc-8, gcc-10, gcc-11 and gcc-10.

Quoted 8 lines

and this is probably similar to:
a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36") 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT")

Regards,

--Tom

Best regards
Naresh Kamboju

Tested-by on the v1 series
#205 lore raw
In reply to Greg Kroah-Hartman
Quoted 5 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Successfully cross-compiled for arm64 (bcm2711_defconfig, GCC 10.2.0) and powerpc (ps3_defconfig, GCC 12.2.0).

Signature · 1 line
An old man doll... just what I always wanted! - Clara
Tested-by on the v1 series
#207 lore raw
In reply to Greg Kroah-Hartman
Quoted 9 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

The whole patch series can be found in one patch at:

Quoted 8 lines
	https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.8-rc1.gz

or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.

thanks,

greg k-h

Built and booted successfully on RISC-V RV64 (HiFive Unmatched).

Tested-by on the v1 series
#208 lore raw
In reply to Greg Kroah-Hartman

Hi Greg,

Quoted 7 lines · Greg Kroah-Hartman

This is the start of the stable review cycle for the 6.1.8 release. There are 193 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.

Responses should be made by Tue, 24 Jan 2023 15:02:08 +0000. Anything received after that time might be too late.

Build test (gcc version 12.2.1 20230113):
mips: 52 configs -> no failure
arm: 100 configs -> no failure
arm64: 3 configs -> no failure
x86_64: 4 configs -> no failure
alpha allmodconfig -> no failure
csky allmodconfig -> no failure
powerpc allmodconfig -> no failure
riscv allmodconfig -> no failure
s390 allmodconfig -> no failure
xtensa allmodconfig -> no failure

Boot test:
x86_64: Booted on my test laptop. No regression.
x86_64: Booted on qemu. No regression. [1]
arm64: Booted on rpi4b (4GB model). No regression. [2]
mips: Booted on ci20 board. No regression. [3]

[1]. https://openqa.qa.codethink.co.uk/tests/2705
[2]. https://openqa.qa.codethink.co.uk/tests/2700
[3]. https://openqa.qa.codethink.co.uk/tests/2706

Signature · 2 lines
Regards
Sudip