diff --git a/Makefile b/Makefile index f4dd0b6b..2d2897a3 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,9 @@ busybox-menuconfig: swupdate-menuconfig: $(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) swupdate-menuconfig +uclibc-menuconfig: + $(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) uclibc-menuconfig + savedefconfig: $(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) savedefconfig diff --git a/buildroot b/buildroot index 093b88df..2ea8cb50 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 093b88df32925edd53b9a201ad3ae2a1c1fde26d +Subproject commit 2ea8cb5076fa06c656096868b9e18fbd2ff52c70 diff --git a/buildroot-external/busybox.config b/buildroot-external/busybox.config index d71ad832..23a901c0 100644 --- a/buildroot-external/busybox.config +++ b/buildroot-external/busybox.config @@ -1,14 +1,14 @@ # # Automatically generated make config: don't edit # Busybox version: 1.36.1 -# Sat Sep 2 08:34:33 2023 +# Fri Mar 29 11:40:35 2024 # CONFIG_HAVE_DOT_CONFIG=y # # Settings # -CONFIG_DESKTOP=y +# CONFIG_DESKTOP is not set # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set @@ -192,9 +192,9 @@ CONFIG_FEATURE_TAR_TO_COMMAND=y # CONFIG_FEATURE_TAR_SELINUX is not set CONFIG_UNZIP=y CONFIG_FEATURE_UNZIP_CDF=y -CONFIG_FEATURE_UNZIP_BZIP2=y -CONFIG_FEATURE_UNZIP_LZMA=y -CONFIG_FEATURE_UNZIP_XZ=y +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set # CONFIG_FEATURE_LZMA_FAST is not set # @@ -205,7 +205,7 @@ CONFIG_FEATURE_VERBOSE=y # # Common options for date and touch # -CONFIG_FEATURE_TIMEZONE=y +# CONFIG_FEATURE_TIMEZONE is not set # # Common options for cp and mv @@ -508,7 +508,7 @@ CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # CONFIG_FEATURE_WAIT_FOR_INIT is not set # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" -# CONFIG_INIT is not set +CONFIG_INIT=y # CONFIG_LINUXRC is not set # CONFIG_FEATURE_USE_INITTAB is not set # CONFIG_FEATURE_KILL_REMOVED is not set @@ -1071,11 +1071,11 @@ CONFIG_FEATURE_PIDOF_OMIT=y # CONFIG_POWERTOP is not set # CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set CONFIG_PS=y -# CONFIG_FEATURE_PS_WIDE is not set -# CONFIG_FEATURE_PS_LONG is not set -CONFIG_FEATURE_PS_TIME=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set # CONFIG_PSTREE is not set # CONFIG_PWDX is not set # CONFIG_SMEMCAP is not set diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index dfcd6271..8ff1ad7c 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -30,7 +30,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi3" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,5e78d297b997dcc7a78ba747a62fb28d0b6a10d8)/linux-5e78d297b997dcc7a78ba747a62fb28d0b6a10d8.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,37573248884ec252165a246df21642c52573f013)/linux-37573248884ec252165a246df21642c52573f013.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi3" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config" BR2_LINUX_KERNEL_LZ4=y @@ -266,7 +266,6 @@ BR2_PACKAGE_RSYSLOG=y BR2_PACKAGE_SHADOW=y BR2_PACKAGE_SHADOW_SHADOWGRP=y BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y -BR2_PACKAGE_SHADOW_UTMPX=y BR2_PACKAGE_SHADOW_SUBORDINATE_IDS=y BR2_PACKAGE_SWUPDATE=y BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config" diff --git a/buildroot-external/configs/rpi4_64_defconfig b/buildroot-external/configs/rpi4_64_defconfig index 82397504..9e6c104c 100644 --- a/buildroot-external/configs/rpi4_64_defconfig +++ b/buildroot-external/configs/rpi4_64_defconfig @@ -27,7 +27,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,9e78addad23f9fc66b0c6399d9234e44a89d699a)/linux-9e78addad23f9fc66b0c6399d9234e44a89d699a.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,37573248884ec252165a246df21642c52573f013)/linux-37573248884ec252165a246df21642c52573f013.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config" BR2_LINUX_KERNEL_LZ4=y @@ -260,7 +260,6 @@ BR2_PACKAGE_RSYSLOG=y BR2_PACKAGE_SHADOW=y BR2_PACKAGE_SHADOW_SHADOWGRP=y BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y -BR2_PACKAGE_SHADOW_UTMPX=y BR2_PACKAGE_SHADOW_SUBORDINATE_IDS=y BR2_PACKAGE_SWUPDATE=y BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config" diff --git a/buildroot-external/configs/x86_64_defconfig b/buildroot-external/configs/x86_64_defconfig index 55efdd74..2751fb82 100644 --- a/buildroot-external/configs/x86_64_defconfig +++ b/buildroot-external/configs/x86_64_defconfig @@ -29,7 +29,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/pc" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.14" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.25" BR2_LINUX_KERNEL_DEFCONFIG="x86_64" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/pc/kernel.config" BR2_LINUX_KERNEL_LZ4=y @@ -280,7 +280,6 @@ BR2_PACKAGE_RSYSLOG=y BR2_PACKAGE_SHADOW=y BR2_PACKAGE_SHADOW_SHADOWGRP=y BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y -BR2_PACKAGE_SHADOW_UTMPX=y BR2_PACKAGE_SHADOW_SUBORDINATE_IDS=y BR2_PACKAGE_SWUPDATE=y BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config" diff --git a/buildroot-external/package/vocalfusion/vocalfusion.hash b/buildroot-external/package/vocalfusion/vocalfusion.hash index 6db63aab..5a1cfc88 100644 --- a/buildroot-external/package/vocalfusion/vocalfusion.hash +++ b/buildroot-external/package/vocalfusion/vocalfusion.hash @@ -1,2 +1,2 @@ # Locally computed -sha256 c974fd4a6eeac9ce676827ca617674ee43ad40c98c31e6dd0a878591467ecd69 vocalfusion-fdf7e4efbe3237d68eb0d00388e57b0c891366b3.tar.gz +sha256 0eb24e52f975eed46978cbfb2d3660529c8a2ee04eb0ca859dbe1736303ab17f vocalfusion-b56f5c8751918a0a2505b9ae94631d6b72b8e7b0.tar.gz diff --git a/buildroot-external/package/vocalfusion/vocalfusion.mk b/buildroot-external/package/vocalfusion/vocalfusion.mk index 1d6fcb92..b22f3acf 100644 --- a/buildroot-external/package/vocalfusion/vocalfusion.mk +++ b/buildroot-external/package/vocalfusion/vocalfusion.mk @@ -4,7 +4,7 @@ # ################################################################################ -VOCALFUSION_VERSION = fdf7e4efbe3237d68eb0d00388e57b0c891366b3 +VOCALFUSION_VERSION = b56f5c8751918a0a2505b9ae94631d6b72b8e7b0 VOCALFUSION_SITE = $(call github,OpenVoiceOS,VocalFusionDriver,$(VOCALFUSION_VERSION)) VOCALFUSION_MODULE_SUBDIRS = driver diff --git a/buildroot-external/patches/linux/0001-sched-Constrain-locks-in-sched_submit_work.patch b/buildroot-external/patches/linux/0001-sched-Constrain-locks-in-sched_submit_work.patch index 64b8ac03..0e7811ac 100644 --- a/buildroot-external/patches/linux/0001-sched-Constrain-locks-in-sched_submit_work.patch +++ b/buildroot-external/patches/linux/0001-sched-Constrain-locks-in-sched_submit_work.patch @@ -1,7 +1,7 @@ -From f75402b89331eb0888900ae15fe7a8ec08564e90 Mon Sep 17 00:00:00 2001 +From 75831a0c7ffb6d0882e51932376528634e26c979 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 8 Sep 2023 18:22:48 +0200 -Subject: [PATCH 001/196] sched: Constrain locks in sched_submit_work() +Subject: [PATCH 001/198] sched: Constrain locks in sched_submit_work() Even though sched_submit_work() is ran from preemptible context, it is discouraged to have it use blocking locks due to the recursion @@ -18,7 +18,7 @@ Link: https://lkml.kernel.org/r/20230908162254.999499-2-bigeasy@linutronix.de 1 file changed, 9 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index a854b71836dd..a9bf40d18cec 100644 +index 1f91e2c12731..73949b8a55d2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6721,11 +6721,18 @@ void __noreturn do_task_dead(void) @@ -50,5 +50,5 @@ index a854b71836dd..a9bf40d18cec 100644 static void sched_update_worker(struct task_struct *tsk) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0002-locking-rtmutex-Avoid-unconditional-slowpath-for-DEB.patch b/buildroot-external/patches/linux/0002-locking-rtmutex-Avoid-unconditional-slowpath-for-DEB.patch index f9871a5b..62256b7a 100644 --- a/buildroot-external/patches/linux/0002-locking-rtmutex-Avoid-unconditional-slowpath-for-DEB.patch +++ b/buildroot-external/patches/linux/0002-locking-rtmutex-Avoid-unconditional-slowpath-for-DEB.patch @@ -1,7 +1,7 @@ -From ac013e45d292b1339ee9da48307bc36e860e075e Mon Sep 17 00:00:00 2001 +From b37a6d8e83b287d53965b7a90e912a9b43d39fd0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 8 Sep 2023 18:22:49 +0200 -Subject: [PATCH 002/196] locking/rtmutex: Avoid unconditional slowpath for +Subject: [PATCH 002/198] locking/rtmutex: Avoid unconditional slowpath for DEBUG_RT_MUTEXES With DEBUG_RT_MUTEXES enabled the fast-path rt_mutex_cmpxchg_acquire() @@ -82,5 +82,5 @@ index d1473c624105..c7196de838ed 100644 ww_mutex_set_context_fastpath(lock, ww_ctx); return 0; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0003-sched-Extract-__schedule_loop.patch b/buildroot-external/patches/linux/0003-sched-Extract-__schedule_loop.patch index 428c227c..5aea1962 100644 --- a/buildroot-external/patches/linux/0003-sched-Extract-__schedule_loop.patch +++ b/buildroot-external/patches/linux/0003-sched-Extract-__schedule_loop.patch @@ -1,7 +1,7 @@ -From 441d37212b3185e39a4eba30acb9f2aefc8f157a Mon Sep 17 00:00:00 2001 +From 1878b10b7153990220aa3a02b8c92e1528701093 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Sep 2023 18:22:50 +0200 -Subject: [PATCH 003/196] sched: Extract __schedule_loop() +Subject: [PATCH 003/198] sched: Extract __schedule_loop() There are currently two implementations of this basic __schedule() loop, and there is soon to be a third. @@ -15,7 +15,7 @@ Link: https://lkml.kernel.org/r/20230908162254.999499-4-bigeasy@linutronix.de 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index a9bf40d18cec..ed5f5e3f6239 100644 +index 73949b8a55d2..4498af52cf47 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6771,16 +6771,21 @@ static void sched_update_worker(struct task_struct *tsk) @@ -59,5 +59,5 @@ index a9bf40d18cec..ed5f5e3f6239 100644 NOKPROBE_SYMBOL(schedule_rtlock); #endif -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0004-sched-Provide-rt_mutex-specific-scheduler-helpers.patch b/buildroot-external/patches/linux/0004-sched-Provide-rt_mutex-specific-scheduler-helpers.patch index 8e2fe451..8dcfb0e2 100644 --- a/buildroot-external/patches/linux/0004-sched-Provide-rt_mutex-specific-scheduler-helpers.patch +++ b/buildroot-external/patches/linux/0004-sched-Provide-rt_mutex-specific-scheduler-helpers.patch @@ -1,7 +1,7 @@ -From a8e46d57627a4d965d528b7ba8ed107d500257f6 Mon Sep 17 00:00:00 2001 +From d779fa7b0b348557ed9e2f0a3a5a7710e1aa5c89 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 8 Sep 2023 18:22:51 +0200 -Subject: [PATCH 004/196] sched: Provide rt_mutex specific scheduler helpers +Subject: [PATCH 004/198] sched: Provide rt_mutex specific scheduler helpers With PREEMPT_RT there is a rt_mutex recursion problem where sched_submit_work() can use an rtlock (aka spinlock_t). More @@ -72,7 +72,7 @@ index 994c25640e15..b2b9e6eb9683 100644 * Must hold either p->pi_lock or task_rq(p)->lock. */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index ed5f5e3f6239..90f9124ac027 100644 +index 4498af52cf47..d703c5427cf2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6724,9 +6724,6 @@ static inline void sched_submit_work(struct task_struct *tsk) @@ -133,5 +133,5 @@ index ed5f5e3f6239..90f9124ac027 100644 { if (pi_task) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0005-locking-rtmutex-Use-rt_mutex-specific-scheduler-help.patch b/buildroot-external/patches/linux/0005-locking-rtmutex-Use-rt_mutex-specific-scheduler-help.patch index 6ca01031..72e32e6c 100644 --- a/buildroot-external/patches/linux/0005-locking-rtmutex-Use-rt_mutex-specific-scheduler-help.patch +++ b/buildroot-external/patches/linux/0005-locking-rtmutex-Use-rt_mutex-specific-scheduler-help.patch @@ -1,7 +1,7 @@ -From 1516b657591d065dbad2dbcd031a419802536191 Mon Sep 17 00:00:00 2001 +From 0655b5650cdb7f54ec9ab9ccf5fcf15136d0bf56 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 8 Sep 2023 18:22:52 +0200 -Subject: [PATCH 005/196] locking/rtmutex: Use rt_mutex specific scheduler +Subject: [PATCH 005/198] locking/rtmutex: Use rt_mutex specific scheduler helpers Have rt_mutex use the rt_mutex specific scheduler helpers to avoid @@ -187,5 +187,5 @@ index 48a19ed8486d..842037b2ba54 100644 /* * The common functions which get wrapped into the rwlock API. -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0006-locking-rtmutex-Add-a-lockdep-assert-to-catch-potent.patch b/buildroot-external/patches/linux/0006-locking-rtmutex-Add-a-lockdep-assert-to-catch-potent.patch index 0053dc4a..cfd61011 100644 --- a/buildroot-external/patches/linux/0006-locking-rtmutex-Add-a-lockdep-assert-to-catch-potent.patch +++ b/buildroot-external/patches/linux/0006-locking-rtmutex-Add-a-lockdep-assert-to-catch-potent.patch @@ -1,7 +1,7 @@ -From 6e0ef4c9025663e48a28d0f9f37117f7468884b9 Mon Sep 17 00:00:00 2001 +From b7040e508fc47a6a766cba8d7f827b521d97dc83 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Sep 2023 18:22:53 +0200 -Subject: [PATCH 006/196] locking/rtmutex: Add a lockdep assert to catch +Subject: [PATCH 006/198] locking/rtmutex: Add a lockdep assert to catch potential nested blocking There used to be a BUG_ON(current->pi_blocked_on) in the lock acquisition @@ -62,5 +62,5 @@ index 842037b2ba54..38e292454fcc 100644 rtlock_slowlock(rtm); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0007-futex-pi-Fix-recursive-rt_mutex-waiter-state.patch b/buildroot-external/patches/linux/0007-futex-pi-Fix-recursive-rt_mutex-waiter-state.patch index a3ba02c2..29e5444b 100644 --- a/buildroot-external/patches/linux/0007-futex-pi-Fix-recursive-rt_mutex-waiter-state.patch +++ b/buildroot-external/patches/linux/0007-futex-pi-Fix-recursive-rt_mutex-waiter-state.patch @@ -1,7 +1,7 @@ -From c727d5f5dcbe3a30ed56920957f32cade3dfd2cf Mon Sep 17 00:00:00 2001 +From f873113440e07c042dc805df19c8e2ecd3fd5839 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 15 Sep 2023 17:19:44 +0200 -Subject: [PATCH 007/196] futex/pi: Fix recursive rt_mutex waiter state +Subject: [PATCH 007/198] futex/pi: Fix recursive rt_mutex waiter state Some new assertions pointed out that the existing code has nested rt_mutex wait state in the futex code. @@ -200,5 +200,5 @@ index cba8b1a6a4cc..4c73e0b81acc 100644 /* * Fixup the pi_state owner and possibly acquire the lock if we -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0008-signal-Add-proper-comment-about-the-preempt-disable-.patch b/buildroot-external/patches/linux/0008-signal-Add-proper-comment-about-the-preempt-disable-.patch index 8171fd92..db7138ff 100644 --- a/buildroot-external/patches/linux/0008-signal-Add-proper-comment-about-the-preempt-disable-.patch +++ b/buildroot-external/patches/linux/0008-signal-Add-proper-comment-about-the-preempt-disable-.patch @@ -1,7 +1,7 @@ -From ed5e3fcceec56a9401a00bfdd6e2545e064ea774 Mon Sep 17 00:00:00 2001 +From 3905f3b627b3ff024c9521d2be49a5077ff79184 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 3 Aug 2023 12:09:31 +0200 -Subject: [PATCH 008/196] signal: Add proper comment about the preempt-disable +Subject: [PATCH 008/198] signal: Add proper comment about the preempt-disable in ptrace_stop(). Commit 53da1d9456fe7 ("fix ptrace slowness") added a preempt-disable section @@ -48,5 +48,5 @@ index 09019017d669..051ed8114cd4 100644 preempt_disable(); read_unlock(&tasklist_lock); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0009-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch b/buildroot-external/patches/linux/0009-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch index 6db31427..bbf81c65 100644 --- a/buildroot-external/patches/linux/0009-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch +++ b/buildroot-external/patches/linux/0009-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch @@ -1,7 +1,7 @@ -From b9cc1762c1cb78dc3ea579526c2810aaa5095b76 Mon Sep 17 00:00:00 2001 +From 95d0354ab790443cc09ef6185c09be99540a33f5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 3 Aug 2023 12:09:32 +0200 -Subject: [PATCH 009/196] signal: Don't disable preemption in ptrace_stop() on +Subject: [PATCH 009/198] signal: Don't disable preemption in ptrace_stop() on PREEMPT_RT. On PREEMPT_RT keeping preemption disabled during the invocation of @@ -49,5 +49,5 @@ index 051ed8114cd4..b71026341056 100644 cgroup_leave_frozen(true); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0010-drm-amd-display-Remove-migrate_en-dis-from-dc_fpu_be.patch b/buildroot-external/patches/linux/0010-drm-amd-display-Remove-migrate_en-dis-from-dc_fpu_be.patch index a0a419c2..8dafd8ba 100644 --- a/buildroot-external/patches/linux/0010-drm-amd-display-Remove-migrate_en-dis-from-dc_fpu_be.patch +++ b/buildroot-external/patches/linux/0010-drm-amd-display-Remove-migrate_en-dis-from-dc_fpu_be.patch @@ -1,7 +1,7 @@ -From 940963fd380191ddc53a1519e9a43e9f64acff7d Mon Sep 17 00:00:00 2001 +From 72f23865ddf0ce1b0a37393e990eaaad3d8d4c1d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2023 16:15:12 +0200 -Subject: [PATCH 010/196] drm/amd/display: Remove migrate_en/dis from +Subject: [PATCH 010/198] drm/amd/display: Remove migrate_en/dis from dc_fpu_begin(). This is a revert of the commit mentioned below while it is not wrong, as @@ -87,5 +87,5 @@ index 172aa10a8800..86f4c0e04654 100644 if (cpu_has_feature(CPU_FTR_VSX_COMP)) { disable_kernel_vsx(); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0011-drm-amd-display-Simplify-the-per-CPU-usage.patch b/buildroot-external/patches/linux/0011-drm-amd-display-Simplify-the-per-CPU-usage.patch index 4b7fdb8a..56e451ad 100644 --- a/buildroot-external/patches/linux/0011-drm-amd-display-Simplify-the-per-CPU-usage.patch +++ b/buildroot-external/patches/linux/0011-drm-amd-display-Simplify-the-per-CPU-usage.patch @@ -1,7 +1,7 @@ -From 5a4030acca5d80c89c7c5d456ce6d368c8b06c3d Mon Sep 17 00:00:00 2001 +From fcb8291bf9d00b262c0d719c4fd11099b5e2407e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2023 16:15:13 +0200 -Subject: [PATCH 011/196] drm/amd/display: Simplify the per-CPU usage. +Subject: [PATCH 011/198] drm/amd/display: Simplify the per-CPU usage. The fpu_recursion_depth counter is used to ensure that dc_fpu_begin() can be invoked multiple times while the FPU-disable function itself is @@ -128,5 +128,5 @@ index 86f4c0e04654..8bd5926b47e0 100644 + preempt_enable(); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0012-drm-amd-display-Add-a-warning-if-the-FPU-is-used-out.patch b/buildroot-external/patches/linux/0012-drm-amd-display-Add-a-warning-if-the-FPU-is-used-out.patch index c6e067c6..3775ad1e 100644 --- a/buildroot-external/patches/linux/0012-drm-amd-display-Add-a-warning-if-the-FPU-is-used-out.patch +++ b/buildroot-external/patches/linux/0012-drm-amd-display-Add-a-warning-if-the-FPU-is-used-out.patch @@ -1,7 +1,7 @@ -From 571a36167db85f02eee543494804642690368288 Mon Sep 17 00:00:00 2001 +From c9e3099dae058e513e74091141f71dfd9e67aefa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2023 16:15:14 +0200 -Subject: [PATCH 012/196] drm/amd/display: Add a warning if the FPU is used +Subject: [PATCH 012/198] drm/amd/display: Add a warning if the FPU is used outside from task context. Add a warning if the FPU is used from any context other than task @@ -27,5 +27,5 @@ index 8bd5926b47e0..4ae4720535a5 100644 depth = __this_cpu_inc_return(fpu_recursion_depth); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0013-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch b/buildroot-external/patches/linux/0013-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch index 7369fc7a..1f49f8c1 100644 --- a/buildroot-external/patches/linux/0013-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch +++ b/buildroot-external/patches/linux/0013-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch @@ -1,7 +1,7 @@ -From ac9bf004c54c34415488830ec5cbdd2c85a77619 Mon Sep 17 00:00:00 2001 +From 660089faa4f04d68ff2dbce32b7ccd8532978704 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2023 16:15:15 +0200 -Subject: [PATCH 013/196] drm/amd/display: Move the memory allocation out of +Subject: [PATCH 013/198] drm/amd/display: Move the memory allocation out of dcn21_validate_bandwidth_fp(). dcn21_validate_bandwidth_fp() is invoked while FPU access has been @@ -92,5 +92,5 @@ index c51badf7b68a..a81a0b9e6884 100644 void dcn21_clk_mgr_set_bw_params_wm_table(struct clk_bw_params *bw_params); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0014-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch b/buildroot-external/patches/linux/0014-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch index 8a412c87..df38fc38 100644 --- a/buildroot-external/patches/linux/0014-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch +++ b/buildroot-external/patches/linux/0014-drm-amd-display-Move-the-memory-allocation-out-of-dc.patch @@ -1,7 +1,7 @@ -From 3f2c3255ff61a58382c5a9ade34c950b92fa2a10 Mon Sep 17 00:00:00 2001 +From a9ce8a34cfe43f0ea168ad2efea0fd0c1fd14a2a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2023 16:15:16 +0200 -Subject: [PATCH 014/196] drm/amd/display: Move the memory allocation out of +Subject: [PATCH 014/198] drm/amd/display: Move the memory allocation out of dcn20_validate_bandwidth_fp(). dcn20_validate_bandwidth_fp() is invoked while FPU access has been @@ -126,5 +126,5 @@ index a81a0b9e6884..b6c34198ddc8 100644 struct pp_smu_wm_range_sets *ranges, struct _vcs_dpi_soc_bounding_box_st *loaded_bb); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0015-net-Avoid-the-IPI-to-free-the.patch b/buildroot-external/patches/linux/0015-net-Avoid-the-IPI-to-free-the.patch index 9485d160..d33f7236 100644 --- a/buildroot-external/patches/linux/0015-net-Avoid-the-IPI-to-free-the.patch +++ b/buildroot-external/patches/linux/0015-net-Avoid-the-IPI-to-free-the.patch @@ -1,7 +1,7 @@ -From 1ae5a33601b65a31467bdb074b566d48296b1359 Mon Sep 17 00:00:00 2001 +From 26b7ede776b83df57ce0ab06a5c545490759070b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 15 Aug 2022 17:29:50 +0200 -Subject: [PATCH 015/196] net: Avoid the IPI to free the +Subject: [PATCH 015/198] net: Avoid the IPI to free the skb_attempt_defer_free() collects a skbs, which was allocated on a remote CPU, on a per-CPU list. These skbs are either freed on that @@ -40,7 +40,7 @@ index b8e60a20416b..ffa5248a90e2 100644 static inline void input_queue_head_incr(struct softnet_data *sd) diff --git a/net/core/dev.c b/net/core/dev.c -index d72a4ff689ca..3c08e3dd115b 100644 +index 1f6c8945f2ec..1e8928cd3c75 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4705,15 +4705,6 @@ static void rps_trigger_softirq(void *data) @@ -92,7 +92,7 @@ index d72a4ff689ca..3c08e3dd115b 100644 static int napi_threaded_poll(void *data) { struct napi_struct *napi = data; -@@ -11615,7 +11632,11 @@ static int __init net_dev_init(void) +@@ -11618,7 +11635,11 @@ static int __init net_dev_init(void) INIT_CSD(&sd->csd, rps_trigger_softirq, sd); sd->cpu = i; #endif @@ -105,10 +105,10 @@ index d72a4ff689ca..3c08e3dd115b 100644 init_gro_hash(&sd->backlog); diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index 011d69029112..9a9fbe18bf2f 100644 +index 60876262b3fb..02e2bab1ed8d 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c -@@ -6844,8 +6844,13 @@ nodefer: __kfree_skb(skb); +@@ -6852,8 +6852,13 @@ nodefer: __kfree_skb(skb); /* Make sure to trigger NET_RX_SOFTIRQ on the remote CPU * if we are unlucky enough (this seems very unlikely). */ @@ -124,5 +124,5 @@ index 011d69029112..9a9fbe18bf2f 100644 static void skb_splice_csum_page(struct sk_buff *skb, struct page *page, -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0016-x86-Allow-to-enable-RT.patch b/buildroot-external/patches/linux/0016-x86-Allow-to-enable-RT.patch index fc773f62..977db648 100644 --- a/buildroot-external/patches/linux/0016-x86-Allow-to-enable-RT.patch +++ b/buildroot-external/patches/linux/0016-x86-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ -From d312cf65a294c2b7b473cb487f8bda3161b9d72d Mon Sep 17 00:00:00 2001 +From 98c9c62ae579439b1f83ddbeb9d9cf04842c1b6e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 7 Aug 2019 18:15:38 +0200 -Subject: [PATCH 016/196] x86: Allow to enable RT +Subject: [PATCH 016/198] x86: Allow to enable RT Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index fe3292e310d4..984068efd48b 100644 +index 4b81e884a614..b9c1a286dddc 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -28,6 +28,7 @@ config X86_64 @@ -24,5 +24,5 @@ index fe3292e310d4..984068efd48b 100644 select HAVE_ARCH_SOFT_DIRTY select MODULES_USE_ELF_RELA -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0017-x86-Enable-RT-also-on-32bit.patch b/buildroot-external/patches/linux/0017-x86-Enable-RT-also-on-32bit.patch index 01577723..b60b1d69 100644 --- a/buildroot-external/patches/linux/0017-x86-Enable-RT-also-on-32bit.patch +++ b/buildroot-external/patches/linux/0017-x86-Enable-RT-also-on-32bit.patch @@ -1,7 +1,7 @@ -From 06505d443d8b5674ebf4577ce6f372c939a36998 Mon Sep 17 00:00:00 2001 +From b474a9ddbb498398c30bc4905b3926eee6f6abed Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Nov 2019 17:49:20 +0100 -Subject: [PATCH 017/196] x86: Enable RT also on 32bit +Subject: [PATCH 017/198] x86: Enable RT also on 32bit Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner @@ -10,7 +10,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 984068efd48b..1b445e289190 100644 +index b9c1a286dddc..f774dc9f97f5 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -28,7 +28,6 @@ config X86_64 @@ -30,5 +30,5 @@ index 984068efd48b..1b445e289190 100644 select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0018-sched-rt-Don-t-try-push-tasks-if-there-are-none.patch b/buildroot-external/patches/linux/0018-sched-rt-Don-t-try-push-tasks-if-there-are-none.patch index 8ed9f622..4fefb809 100644 --- a/buildroot-external/patches/linux/0018-sched-rt-Don-t-try-push-tasks-if-there-are-none.patch +++ b/buildroot-external/patches/linux/0018-sched-rt-Don-t-try-push-tasks-if-there-are-none.patch @@ -1,7 +1,7 @@ -From a52edbca61751c78ec7f0a0d386c726f3ed609cd Mon Sep 17 00:00:00 2001 +From ff02a1bafacf77d91927e5ac7556abfb0f598d34 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 1 Aug 2023 17:26:48 +0200 -Subject: [PATCH 018/196] sched/rt: Don't try push tasks if there are none. +Subject: [PATCH 018/198] sched/rt: Don't try push tasks if there are none. I have a RT task X at a high priority and cyclictest on each CPU with lower priority than X's. If X is active and each CPU wakes their own @@ -42,10 +42,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index 904dd8534597..563161845e79 100644 +index 4ac36eb4cdee..acd1510e8d47 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c -@@ -2249,8 +2249,11 @@ static int rto_next_cpu(struct root_domain *rd) +@@ -2253,8 +2253,11 @@ static int rto_next_cpu(struct root_domain *rd) rd->rto_cpu = cpu; @@ -59,5 +59,5 @@ index 904dd8534597..563161845e79 100644 rd->rto_cpu = -1; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0019-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch b/buildroot-external/patches/linux/0019-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch index dc68f1ed..cb6919bd 100644 --- a/buildroot-external/patches/linux/0019-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch +++ b/buildroot-external/patches/linux/0019-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch @@ -1,7 +1,7 @@ -From 196e6be48c3feb1e5c17c651431b96dd16377788 Mon Sep 17 00:00:00 2001 +From c5863cc5e1158351c86d38ac26d1d77066869be3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 1 Dec 2021 17:41:09 +0100 -Subject: [PATCH 019/196] softirq: Use a dedicated thread for timer wakeups. +Subject: [PATCH 019/198] softirq: Use a dedicated thread for timer wakeups. A timer/hrtimer softirq is raised in-IRQ context. With threaded interrupts enabled or on PREEMPT_RT this leads to waking the ksoftirqd @@ -229,5 +229,5 @@ index 63a8ce7177dd..7cad6fe3c035 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0020-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch b/buildroot-external/patches/linux/0020-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch index 013b6479..a161642c 100644 --- a/buildroot-external/patches/linux/0020-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch +++ b/buildroot-external/patches/linux/0020-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch @@ -1,7 +1,7 @@ -From 5cad67f914fcb553250226df80262091c892b24b Mon Sep 17 00:00:00 2001 +From 51aa5b4ef3775ca0af1535f4b542b60fce91c8c8 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 5 Apr 2022 03:07:51 +0200 -Subject: [PATCH 020/196] rcutorture: Also force sched priority to timersd on +Subject: [PATCH 020/198] rcutorture: Also force sched priority to timersd on boosting test. ksoftirqd is statically boosted to the priority level right above the @@ -76,5 +76,5 @@ index c29c30106eb8..1277abc94228 100644 static unsigned int local_pending_timers(void) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0021-tick-Fix-timer-storm-since-introduction-of-timersd.patch b/buildroot-external/patches/linux/0021-tick-Fix-timer-storm-since-introduction-of-timersd.patch index 669eda90..25fc500b 100644 --- a/buildroot-external/patches/linux/0021-tick-Fix-timer-storm-since-introduction-of-timersd.patch +++ b/buildroot-external/patches/linux/0021-tick-Fix-timer-storm-since-introduction-of-timersd.patch @@ -1,7 +1,7 @@ -From 258f3ad84b7913d34d1ba886504d32c6035e9062 Mon Sep 17 00:00:00 2001 +From 0132df07a607045a682de87475561db9920cfca9 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 5 Apr 2022 03:07:52 +0200 -Subject: [PATCH 021/196] tick: Fix timer storm since introduction of timersd +Subject: [PATCH 021/198] tick: Fix timer storm since introduction of timersd If timers are pending while the tick is reprogrammed on nohz_mode, the next expiry is not armed to fire now, it is delayed one jiffy forward @@ -111,5 +111,5 @@ index 55cbc49f70d1..1a0ed106b192 100644 static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0022-softirq-Wake-ktimers-thread-also-in-softirq.patch b/buildroot-external/patches/linux/0022-softirq-Wake-ktimers-thread-also-in-softirq.patch index 949ed3a0..0bc82982 100644 --- a/buildroot-external/patches/linux/0022-softirq-Wake-ktimers-thread-also-in-softirq.patch +++ b/buildroot-external/patches/linux/0022-softirq-Wake-ktimers-thread-also-in-softirq.patch @@ -1,7 +1,7 @@ -From a1f12ecc3cd8e461adc6179d1c5879f6e8e75a79 Mon Sep 17 00:00:00 2001 +From fbec5e78e9d2283fef8ff7252549bf51a1eaeb5e Mon Sep 17 00:00:00 2001 From: Junxiao Chang Date: Mon, 20 Feb 2023 09:12:20 +0100 -Subject: [PATCH 022/196] softirq: Wake ktimers thread also in softirq. +Subject: [PATCH 022/198] softirq: Wake ktimers thread also in softirq. If the hrtimer is raised while a softirq is processed then it does not wake the corresponding ktimers thread. This is due to the optimisation in the @@ -45,5 +45,5 @@ index a4d359e2c2b5..c2474cc4fa51 100644 tick_irq_exit(); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0023-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch b/buildroot-external/patches/linux/0023-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch index 21199f0b..14d3968a 100644 --- a/buildroot-external/patches/linux/0023-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch +++ b/buildroot-external/patches/linux/0023-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch @@ -1,7 +1,7 @@ -From 03e700d918bec8e9cf7b84b0547aa3416951ac91 Mon Sep 17 00:00:00 2001 +From 39c5469af04f9921f0cb8533346802ea57d7d9ef Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 -Subject: [PATCH 023/196] zram: Replace bit spinlocks with spinlock_t for +Subject: [PATCH 023/198] zram: Replace bit spinlocks with spinlock_t for PREEMPT_RT. The bit spinlock disables preemption. The spinlock_t lock becomes a sleeping @@ -98,5 +98,5 @@ index ca7a15bd4845..e64eb607eb45 100644 ktime_t ac_time; #endif -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0024-preempt-Put-preempt_enable-within-an-instrumentation.patch b/buildroot-external/patches/linux/0024-preempt-Put-preempt_enable-within-an-instrumentation.patch index f7ee6e4b..dcae6c63 100644 --- a/buildroot-external/patches/linux/0024-preempt-Put-preempt_enable-within-an-instrumentation.patch +++ b/buildroot-external/patches/linux/0024-preempt-Put-preempt_enable-within-an-instrumentation.patch @@ -1,7 +1,7 @@ -From d2531fe36026bcaf2fc22454911e6ef75b937579 Mon Sep 17 00:00:00 2001 +From 46baab63c3d5465d00a87f9b88c96049b58f9a62 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 8 Mar 2023 16:29:38 +0100 -Subject: [PATCH 024/196] preempt: Put preempt_enable() within an +Subject: [PATCH 024/198] preempt: Put preempt_enable() within an instrumentation*() section. Callers of preempt_enable() can be within an noinstr section leading to: @@ -48,5 +48,5 @@ index 9aa6358a1a16..cd16f0330fba 100644 #define preempt_check_resched() \ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0025-sched-core-Provide-a-method-to-check-if-a-task-is-PI.patch b/buildroot-external/patches/linux/0025-sched-core-Provide-a-method-to-check-if-a-task-is-PI.patch index fb936c73..8533053a 100644 --- a/buildroot-external/patches/linux/0025-sched-core-Provide-a-method-to-check-if-a-task-is-PI.patch +++ b/buildroot-external/patches/linux/0025-sched-core-Provide-a-method-to-check-if-a-task-is-PI.patch @@ -1,7 +1,7 @@ -From 480a24076ff3f106924b91564cae088f7e04914c Mon Sep 17 00:00:00 2001 +From 3dac5e9dbebc192a58df61cb7701ae93e24fc653 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2023 13:30:37 +0200 -Subject: [PATCH 025/196] sched/core: Provide a method to check if a task is +Subject: [PATCH 025/198] sched/core: Provide a method to check if a task is PI-boosted. Provide a method to check if a task inherited the priority from another @@ -31,7 +31,7 @@ index 67623ffd4a8e..eab173e5d09b 100644 extern void set_user_nice(struct task_struct *p, long nice); extern int task_prio(const struct task_struct *p); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 90f9124ac027..7134598e3284 100644 +index d703c5427cf2..c731c53d6bfd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8923,6 +8923,21 @@ static inline void preempt_dynamic_init(void) { } @@ -57,5 +57,5 @@ index 90f9124ac027..7134598e3284 100644 * yield - yield the current processor to other threads. * -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0026-softirq-Add-function-to-preempt-serving-softirqs.patch b/buildroot-external/patches/linux/0026-softirq-Add-function-to-preempt-serving-softirqs.patch index caff37b4..8d026fe1 100644 --- a/buildroot-external/patches/linux/0026-softirq-Add-function-to-preempt-serving-softirqs.patch +++ b/buildroot-external/patches/linux/0026-softirq-Add-function-to-preempt-serving-softirqs.patch @@ -1,7 +1,7 @@ -From ac962468dfe43f7a986b0c1a71a4a824686afe1c Mon Sep 17 00:00:00 2001 +From 397fb739b7dea6e8c472d112720511dad74d6253 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2023 13:30:38 +0200 -Subject: [PATCH 026/196] softirq: Add function to preempt serving softirqs. +Subject: [PATCH 026/198] softirq: Add function to preempt serving softirqs. Add a functionality for the softirq handler to preempt its current work if needed. The softirq core has no particular state. It reads and resets @@ -63,5 +63,5 @@ index c2474cc4fa51..cae0ae2e2b0b 100644 * Invoked from ksoftirqd_run() outside of the interrupt disabled section * to acquire the per CPU local lock for reentrancy protection. -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0027-time-Allow-to-preempt-after-a-callback.patch b/buildroot-external/patches/linux/0027-time-Allow-to-preempt-after-a-callback.patch index 97001b96..c7a1a8ef 100644 --- a/buildroot-external/patches/linux/0027-time-Allow-to-preempt-after-a-callback.patch +++ b/buildroot-external/patches/linux/0027-time-Allow-to-preempt-after-a-callback.patch @@ -1,7 +1,7 @@ -From ae915e145a1a823d3b54adb8b5cda19fa8f8dcde Mon Sep 17 00:00:00 2001 +From 3e49fb4989a74e55e5b1829a79f0d68d30b0b956 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2023 13:30:39 +0200 -Subject: [PATCH 027/196] time: Allow to preempt after a callback. +Subject: [PATCH 027/198] time: Allow to preempt after a callback. The TIMER_SOFTIRQ handler invokes timer callbacks of the expired timers. Before each invocation the timer_base::lock is dropped. The only lock @@ -48,5 +48,5 @@ index 7cad6fe3c035..b3fbe97d1e34 100644 raw_spin_lock_irq(&base->lock); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0028-serial-core-Use-lock-wrappers.patch b/buildroot-external/patches/linux/0028-serial-core-Use-lock-wrappers.patch index 4bdf9d25..02e4f77e 100644 --- a/buildroot-external/patches/linux/0028-serial-core-Use-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0028-serial-core-Use-lock-wrappers.patch @@ -1,7 +1,7 @@ -From e20fab51907c073d83831b2810d06305e037bdc1 Mon Sep 17 00:00:00 2001 +From 75dbd89b7e5564256b898403840f9539d444f2c2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:19 +0206 -Subject: [PATCH 028/196] serial: core: Use lock wrappers +Subject: [PATCH 028/198] serial: core: Use lock wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -41,10 +41,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h -index 27a26092493a..f43aca7f3b01 100644 +index a7d5fa892be2..678409c47b88 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h -@@ -1057,14 +1057,14 @@ static inline void uart_unlock_and_check_sysrq(struct uart_port *port) +@@ -1058,14 +1058,14 @@ static inline void uart_unlock_and_check_sysrq(struct uart_port *port) u8 sysrq_ch; if (!port->has_sysrq) { @@ -61,7 +61,7 @@ index 27a26092493a..f43aca7f3b01 100644 if (sysrq_ch) handle_sysrq(sysrq_ch); -@@ -1076,14 +1076,14 @@ static inline void uart_unlock_and_check_sysrq_irqrestore(struct uart_port *port +@@ -1077,14 +1077,14 @@ static inline void uart_unlock_and_check_sysrq_irqrestore(struct uart_port *port u8 sysrq_ch; if (!port->has_sysrq) { @@ -78,7 +78,7 @@ index 27a26092493a..f43aca7f3b01 100644 if (sysrq_ch) handle_sysrq(sysrq_ch); -@@ -1099,12 +1099,12 @@ static inline int uart_prepare_sysrq_char(struct uart_port *port, u8 ch) +@@ -1100,12 +1100,12 @@ static inline int uart_prepare_sysrq_char(struct uart_port *port, u8 ch) } static inline void uart_unlock_and_check_sysrq(struct uart_port *port) { @@ -94,5 +94,5 @@ index 27a26092493a..f43aca7f3b01 100644 #endif /* CONFIG_MAGIC_SYSRQ_SERIAL */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0029-serial-21285-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0029-serial-21285-Use-port-lock-wrappers.patch index a7363947..b4592b20 100644 --- a/buildroot-external/patches/linux/0029-serial-21285-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0029-serial-21285-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 624855d352783d9df2a3de3be77cf25a9a2eace9 Mon Sep 17 00:00:00 2001 +From 6b27426c469aa7fc79fa5a11cde33d61ddb53619 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:20 +0206 -Subject: [PATCH 029/196] serial: 21285: Use port lock wrappers +Subject: [PATCH 029/198] serial: 21285: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -76,5 +76,5 @@ index d756fcc884cb..4de0c975ebdc 100644 static const char *serial21285_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0030-serial-8250_aspeed_vuart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0030-serial-8250_aspeed_vuart-Use-port-lock-wrappers.patch index a519e99a..d5ffd6a6 100644 --- a/buildroot-external/patches/linux/0030-serial-8250_aspeed_vuart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0030-serial-8250_aspeed_vuart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 30550a4dbe3e00fec073ed3f1e5b3302f0df992c Mon Sep 17 00:00:00 2001 +From d02b1946cdc46642addfbe651d817e86e57100fa Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:21 +0206 -Subject: [PATCH 030/196] serial: 8250_aspeed_vuart: Use port lock wrappers +Subject: [PATCH 030/198] serial: 8250_aspeed_vuart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -62,5 +62,5 @@ index 4a9e71b2dbbc..021949f252f8 100644 lsr = serial_port_in(port, UART_LSR); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0031-serial-8250_bcm7271-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0031-serial-8250_bcm7271-Use-port-lock-wrappers.patch index d0e9422e..9c15b2d7 100644 --- a/buildroot-external/patches/linux/0031-serial-8250_bcm7271-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0031-serial-8250_bcm7271-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 3877ad09bffd062add43fc7a2ebac91e13deb790 Mon Sep 17 00:00:00 2001 +From 90d9cb7552d841a19d1d926e51135c8b8c549a98 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:22 +0206 -Subject: [PATCH 031/196] serial: 8250_bcm7271: Use port lock wrappers +Subject: [PATCH 031/198] serial: 8250_bcm7271: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -152,5 +152,5 @@ index aa5aff046756..ff0662c68725 100644 return 0; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0032-serial-8250-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0032-serial-8250-Use-port-lock-wrappers.patch index d27eb04c..91249721 100644 --- a/buildroot-external/patches/linux/0032-serial-8250-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0032-serial-8250-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 21397e587ef53d219da3aeac88bcc7cbf474852a Mon Sep 17 00:00:00 2001 +From 3094c040b5193510b335425dac817f6420cbd506 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:23 +0206 -Subject: [PATCH 032/196] serial: 8250: Use port lock wrappers +Subject: [PATCH 032/198] serial: 8250: Use port lock wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -90,7 +90,7 @@ index 3449f8790e46..904e319e6b4a 100644 uart_remove_one_port(&serial8250_reg, &uart->port); diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 141627370aab..5b57254ae975 100644 +index a17803da83f8..cba5a1b1030f 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -689,7 +689,7 @@ static void serial8250_set_sleep(struct uart_8250_port *p, int sleep) @@ -177,7 +177,7 @@ index 141627370aab..5b57254ae975 100644 /* * Check if the device is a Fintek F81216A -@@ -1344,9 +1344,9 @@ static void autoconfig_irq(struct uart_8250_port *up) +@@ -1341,9 +1341,9 @@ static void autoconfig_irq(struct uart_8250_port *up) probe_irq_off(probe_irq_on()); save_mcr = serial8250_in_MCR(up); /* Synchronize UART_IER access against the console. */ @@ -189,7 +189,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_out_MCR(up, UART_MCR_OUT1 | UART_MCR_OUT2); irqs = probe_irq_on(); -@@ -1359,9 +1359,9 @@ static void autoconfig_irq(struct uart_8250_port *up) +@@ -1356,9 +1356,9 @@ static void autoconfig_irq(struct uart_8250_port *up) UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2); } /* Synchronize UART_IER access against the console. */ @@ -201,7 +201,7 @@ index 141627370aab..5b57254ae975 100644 serial_in(up, UART_LSR); serial_in(up, UART_RX); serial_in(up, UART_IIR); -@@ -1372,9 +1372,9 @@ static void autoconfig_irq(struct uart_8250_port *up) +@@ -1369,9 +1369,9 @@ static void autoconfig_irq(struct uart_8250_port *up) serial8250_out_MCR(up, save_mcr); /* Synchronize UART_IER access against the console. */ @@ -213,7 +213,7 @@ index 141627370aab..5b57254ae975 100644 if (port->flags & UPF_FOURPORT) outb_p(save_ICP, ICP); -@@ -1442,13 +1442,13 @@ static enum hrtimer_restart serial8250_em485_handle_stop_tx(struct hrtimer *t) +@@ -1436,13 +1436,13 @@ static enum hrtimer_restart serial8250_em485_handle_stop_tx(struct hrtimer *t) unsigned long flags; serial8250_rpm_get(p); @@ -229,7 +229,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_rpm_put(p); return HRTIMER_NORESTART; -@@ -1630,12 +1630,12 @@ static enum hrtimer_restart serial8250_em485_handle_start_tx(struct hrtimer *t) +@@ -1624,12 +1624,12 @@ static enum hrtimer_restart serial8250_em485_handle_start_tx(struct hrtimer *t) struct uart_8250_port *p = em485->port; unsigned long flags; @@ -244,7 +244,7 @@ index 141627370aab..5b57254ae975 100644 return HRTIMER_NORESTART; } -@@ -1918,7 +1918,7 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir) +@@ -1912,7 +1912,7 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir) if (iir & UART_IIR_NO_INT) return 0; @@ -253,7 +253,7 @@ index 141627370aab..5b57254ae975 100644 status = serial_lsr_in(up); -@@ -1988,9 +1988,9 @@ static int serial8250_tx_threshold_handle_irq(struct uart_port *port) +@@ -1982,9 +1982,9 @@ static int serial8250_tx_threshold_handle_irq(struct uart_port *port) if ((iir & UART_IIR_ID) == UART_IIR_THRI) { struct uart_8250_port *up = up_to_u8250p(port); @@ -265,7 +265,7 @@ index 141627370aab..5b57254ae975 100644 } iir = serial_port_in(port, UART_IIR); -@@ -2005,10 +2005,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port) +@@ -1999,10 +1999,10 @@ static unsigned int serial8250_tx_empty(struct uart_port *port) serial8250_rpm_get(up); @@ -278,7 +278,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_rpm_put(up); -@@ -2070,13 +2070,13 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state) +@@ -2064,13 +2064,13 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state) unsigned long flags; serial8250_rpm_get(up); @@ -294,7 +294,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_rpm_put(up); } -@@ -2211,7 +2211,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2205,7 +2205,7 @@ int serial8250_do_startup(struct uart_port *port) * * Synchronize UART_IER access against the console. */ @@ -303,7 +303,7 @@ index 141627370aab..5b57254ae975 100644 up->acr = 0; serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B); serial_port_out(port, UART_EFR, UART_EFR_ECB); -@@ -2221,7 +2221,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2215,7 +2215,7 @@ int serial8250_do_startup(struct uart_port *port) serial_port_out(port, UART_LCR, UART_LCR_CONF_MODE_B); serial_port_out(port, UART_EFR, UART_EFR_ECB); serial_port_out(port, UART_LCR, 0); @@ -312,7 +312,7 @@ index 141627370aab..5b57254ae975 100644 } if (port->type == PORT_DA830) { -@@ -2230,10 +2230,10 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2224,10 +2224,10 @@ int serial8250_do_startup(struct uart_port *port) * * Synchronize UART_IER access against the console. */ @@ -325,7 +325,7 @@ index 141627370aab..5b57254ae975 100644 mdelay(10); /* Enable Tx, Rx and free run mode */ -@@ -2347,7 +2347,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2341,7 +2341,7 @@ int serial8250_do_startup(struct uart_port *port) * * Synchronize UART_IER access against the console. */ @@ -334,7 +334,7 @@ index 141627370aab..5b57254ae975 100644 wait_for_xmitr(up, UART_LSR_THRE); serial_port_out_sync(port, UART_IER, UART_IER_THRI); -@@ -2359,7 +2359,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2353,7 +2353,7 @@ int serial8250_do_startup(struct uart_port *port) iir = serial_port_in(port, UART_IIR); serial_port_out(port, UART_IER, 0); @@ -343,7 +343,7 @@ index 141627370aab..5b57254ae975 100644 if (port->irqflags & IRQF_SHARED) enable_irq(port->irq); -@@ -2382,7 +2382,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2376,7 +2376,7 @@ int serial8250_do_startup(struct uart_port *port) */ serial_port_out(port, UART_LCR, UART_LCR_WLEN8); @@ -352,7 +352,7 @@ index 141627370aab..5b57254ae975 100644 if (up->port.flags & UPF_FOURPORT) { if (!up->port.irq) up->port.mctrl |= TIOCM_OUT1; -@@ -2428,7 +2428,7 @@ int serial8250_do_startup(struct uart_port *port) +@@ -2422,7 +2422,7 @@ int serial8250_do_startup(struct uart_port *port) } dont_test_tx_en: @@ -361,7 +361,7 @@ index 141627370aab..5b57254ae975 100644 /* * Clear the interrupt registers again for luck, and clear the -@@ -2499,17 +2499,17 @@ void serial8250_do_shutdown(struct uart_port *port) +@@ -2493,17 +2493,17 @@ void serial8250_do_shutdown(struct uart_port *port) * * Synchronize UART_IER access against the console. */ @@ -382,7 +382,7 @@ index 141627370aab..5b57254ae975 100644 if (port->flags & UPF_FOURPORT) { /* reset interrupts on the AST Fourport board */ inb((port->iobase & 0xfe0) | 0x1f); -@@ -2518,7 +2518,7 @@ void serial8250_do_shutdown(struct uart_port *port) +@@ -2512,7 +2512,7 @@ void serial8250_do_shutdown(struct uart_port *port) port->mctrl &= ~TIOCM_OUT2; serial8250_set_mctrl(port, port->mctrl); @@ -391,7 +391,7 @@ index 141627370aab..5b57254ae975 100644 /* * Disable break condition and FIFOs -@@ -2754,14 +2754,14 @@ void serial8250_update_uartclk(struct uart_port *port, unsigned int uartclk) +@@ -2748,14 +2748,14 @@ void serial8250_update_uartclk(struct uart_port *port, unsigned int uartclk) quot = serial8250_get_divisor(port, baud, &frac); serial8250_rpm_get(up); @@ -408,7 +408,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_rpm_put(up); out_unlock: -@@ -2798,7 +2798,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2792,7 +2792,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, * Synchronize UART_IER access against the console. */ serial8250_rpm_get(up); @@ -417,7 +417,7 @@ index 141627370aab..5b57254ae975 100644 up->lcr = cval; /* Save computed LCR */ -@@ -2901,7 +2901,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2895,7 +2895,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios, serial_port_out(port, UART_FCR, up->fcr); /* set fcr */ } serial8250_set_mctrl(port, port->mctrl); @@ -426,7 +426,7 @@ index 141627370aab..5b57254ae975 100644 serial8250_rpm_put(up); /* Don't rewrite B0 */ -@@ -2924,15 +2924,15 @@ void serial8250_do_set_ldisc(struct uart_port *port, struct ktermios *termios) +@@ -2918,15 +2918,15 @@ void serial8250_do_set_ldisc(struct uart_port *port, struct ktermios *termios) { if (termios->c_line == N_PPS) { port->flags |= UPF_HARDPPS_CD; @@ -446,7 +446,7 @@ index 141627370aab..5b57254ae975 100644 } } } -@@ -3406,9 +3406,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3400,9 +3400,9 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, touch_nmi_watchdog(); if (oops_in_progress) @@ -458,7 +458,7 @@ index 141627370aab..5b57254ae975 100644 /* * First save the IER then disable the interrupts -@@ -3478,7 +3478,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3472,7 +3472,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, serial8250_modem_status(up); if (locked) @@ -468,5 +468,5 @@ index 141627370aab..5b57254ae975 100644 static unsigned int probe_baud(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0033-serial-8250_dma-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0033-serial-8250_dma-Use-port-lock-wrappers.patch index baa30460..2c254476 100644 --- a/buildroot-external/patches/linux/0033-serial-8250_dma-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0033-serial-8250_dma-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 93094c1874ab303b8dc1782172f24c10a42cd408 Mon Sep 17 00:00:00 2001 +From b975b09242cda03dfa24bc5859e09dcf0719455e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:24 +0206 -Subject: [PATCH 033/196] serial: 8250_dma: Use port lock wrappers +Subject: [PATCH 033/198] serial: 8250_dma: Use port lock wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -81,5 +81,5 @@ index 7fa66501792d..8b30ca8fdd3f 100644 int serial8250_tx_dma(struct uart_8250_port *p) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0034-serial-8250_dw-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0034-serial-8250_dw-Use-port-lock-wrappers.patch index 37e4d6df..a5b077a8 100644 --- a/buildroot-external/patches/linux/0034-serial-8250_dw-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0034-serial-8250_dw-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 2a6e5944a151a85fbb67a497d67c8a33ee6645d0 Mon Sep 17 00:00:00 2001 +From 8062148a5d7d2dc9fc70ae165872f28d378a4bbc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:25 +0206 -Subject: [PATCH 034/196] serial: 8250_dw: Use port lock wrappers +Subject: [PATCH 034/198] serial: 8250_dw: Use port lock wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -70,5 +70,5 @@ index a1f2259cc9a9..53c284bb271d 100644 if (status & (UART_LSR_DR | UART_LSR_BI)) { dw8250_writel_ext(p, RZN1_UART_RDMACR, 0); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0035-serial-8250_exar-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0035-serial-8250_exar-Use-port-lock-wrappers.patch index 7b0ee62d..7b927a48 100644 --- a/buildroot-external/patches/linux/0035-serial-8250_exar-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0035-serial-8250_exar-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 74a615bca2e2128d4ae9b52795a2e60dcaf9c712 Mon Sep 17 00:00:00 2001 +From 387ef2cfac20a43865414aedc210dc3164ca23b0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:26 +0206 -Subject: [PATCH 035/196] serial: 8250_exar: Use port lock wrappers +Subject: [PATCH 035/198] serial: 8250_exar: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c -index 8385be846840..91cf690b7c71 100644 +index 4d20f3aa280c..342786064590 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -201,9 +201,9 @@ static int xr17v35x_startup(struct uart_port *port) @@ -53,5 +53,5 @@ index 8385be846840..91cf690b7c71 100644 return serial8250_do_startup(port); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0036-serial-8250_fsl-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0036-serial-8250_fsl-Use-port-lock-wrappers.patch index 17b7ee08..5fa5eef5 100644 --- a/buildroot-external/patches/linux/0036-serial-8250_fsl-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0036-serial-8250_fsl-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From d601a7a993aba887c6dc64bb9efc6762d5643780 Mon Sep 17 00:00:00 2001 +From 2ffed8195b499f3c084e339c606e3caedf0734ad Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:27 +0206 -Subject: [PATCH 036/196] serial: 8250_fsl: Use port lock wrappers +Subject: [PATCH 036/198] serial: 8250_fsl: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -64,5 +64,5 @@ index 6af4e1c1210a..f522eb5026c9 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0037-serial-8250_mtk-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0037-serial-8250_mtk-Use-port-lock-wrappers.patch index 8657862f..a5295d61 100644 --- a/buildroot-external/patches/linux/0037-serial-8250_mtk-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0037-serial-8250_mtk-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From ad44b165b3fe2140abff5cab7910d10866706978 Mon Sep 17 00:00:00 2001 +From a6146c1416cf4ac69b8f86a70c567bd9c5f59b37 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:28 +0206 -Subject: [PATCH 037/196] serial: 8250_mtk: Use port lock wrappers +Subject: [PATCH 037/198] serial: 8250_mtk: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -78,5 +78,5 @@ index 74da5676ce67..23457daae8a1 100644 if (tty_termios_baud_rate(termios)) tty_termios_encode_baud_rate(termios, baud, baud); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0038-serial-8250_omap-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0038-serial-8250_omap-Use-port-lock-wrappers.patch index bfcd7f0e..7e005c70 100644 --- a/buildroot-external/patches/linux/0038-serial-8250_omap-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0038-serial-8250_omap-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 8a7fda3f428f68d7948da5ed9ff9bae4ec9c52a0 Mon Sep 17 00:00:00 2001 +From a3c3a5aa6741a585fb4bd88a812667d3c8090e59 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:29 +0206 -Subject: [PATCH 038/196] serial: 8250_omap: Use port lock wrappers +Subject: [PATCH 038/198] serial: 8250_omap: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -237,5 +237,5 @@ index 346167afe9e1..db5519ce0192 100644 priv->latency = priv->calc_latency; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0039-serial-8250_pci1xxxx-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0039-serial-8250_pci1xxxx-Use-port-lock-wrappers.patch index 03bb8b03..fb824e59 100644 --- a/buildroot-external/patches/linux/0039-serial-8250_pci1xxxx-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0039-serial-8250_pci1xxxx-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From e13e4c41a1cb64f703b8a71a185c4e29fadac5fc Mon Sep 17 00:00:00 2001 +From dcbb92ff385851014ce2adf8fc88f539bab834da Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:30 +0206 -Subject: [PATCH 039/196] serial: 8250_pci1xxxx: Use port lock wrappers +Subject: [PATCH 039/198] serial: 8250_pci1xxxx: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -67,5 +67,5 @@ index a3b25779d921..53e238c8cc89 100644 mutex_unlock(&tport->mutex); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0040-serial-altera_jtaguart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0040-serial-altera_jtaguart-Use-port-lock-wrappers.patch index ae98b33e..26bd9962 100644 --- a/buildroot-external/patches/linux/0040-serial-altera_jtaguart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0040-serial-altera_jtaguart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 2d04716961088673b757343a2d075858886fb27c Mon Sep 17 00:00:00 2001 +From 2e16f769f7b52fd39a09514d755ddacf44fcda84 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:31 +0206 -Subject: [PATCH 040/196] serial: altera_jtaguart: Use port lock wrappers +Subject: [PATCH 040/198] serial: altera_jtaguart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -134,5 +134,5 @@ index 5fab4c978891..7090b251dd4d 100644 #endif -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0041-serial-altera_uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0041-serial-altera_uart-Use-port-lock-wrappers.patch index efd8aa4b..189dfb37 100644 --- a/buildroot-external/patches/linux/0041-serial-altera_uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0041-serial-altera_uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From db6d50be344aa102ac938287676ab60e9cb2dc39 Mon Sep 17 00:00:00 2001 +From e5557701fa9a5373b8f6b511dbd3fbf3ac51534a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:32 +0206 -Subject: [PATCH 041/196] serial: altera_uart: Use port lock wrappers +Subject: [PATCH 041/198] serial: altera_uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -117,5 +117,5 @@ index a9c41942190c..77835ac68df2 100644 if (port->irq) free_irq(port->irq, port); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0042-serial-amba-pl010-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0042-serial-amba-pl010-Use-port-lock-wrappers.patch index 95f3df78..478deb68 100644 --- a/buildroot-external/patches/linux/0042-serial-amba-pl010-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0042-serial-amba-pl010-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 8504980f6ecdabe092852eac2efaa683011996f9 Mon Sep 17 00:00:00 2001 +From a575d78c4d0b45758ae1969dc75a4a49e2da6cf0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:33 +0206 -Subject: [PATCH 042/196] serial: amba-pl010: Use port lock wrappers +Subject: [PATCH 042/198] serial: amba-pl010: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -113,5 +113,5 @@ index b5a7404cbacb..eabbf8afc9b5 100644 } } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0043-serial-amba-pl011-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0043-serial-amba-pl011-Use-port-lock-wrappers.patch index d8805f3a..681952ea 100644 --- a/buildroot-external/patches/linux/0043-serial-amba-pl011-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0043-serial-amba-pl011-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 96c7d649adbd0d1dd0b530112b93dcc2bbf1066f Mon Sep 17 00:00:00 2001 +From d9b7b888b11585d0af93ed044d8fdf2fa19db277 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:34 +0206 -Subject: [PATCH 043/196] serial: amba-pl011: Use port lock wrappers +Subject: [PATCH 043/198] serial: amba-pl011: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index cd3913b933c7..aec67d740e44 100644 +index 362bbcdece0d..16c770311069 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -347,9 +347,9 @@ static int pl011_fifo_to_tty(struct uart_amba_port *uap) @@ -124,7 +124,7 @@ index cd3913b933c7..aec67d740e44 100644 if (uap->using_tx_dma) { /* In theory, this should already be done by pl011_dma_flush_buffer */ -@@ -1370,9 +1370,9 @@ static void pl011_throttle_rx(struct uart_port *port) +@@ -1400,9 +1400,9 @@ static void pl011_throttle_rx(struct uart_port *port) { unsigned long flags; @@ -136,7 +136,7 @@ index cd3913b933c7..aec67d740e44 100644 } static void pl011_enable_ms(struct uart_port *port) -@@ -1390,7 +1390,7 @@ __acquires(&uap->port.lock) +@@ -1420,7 +1420,7 @@ __acquires(&uap->port.lock) { pl011_fifo_to_tty(uap); @@ -145,7 +145,7 @@ index cd3913b933c7..aec67d740e44 100644 tty_flip_buffer_push(&uap->port.state->port); /* * If we were temporarily out of DMA mode for a while, -@@ -1415,7 +1415,7 @@ __acquires(&uap->port.lock) +@@ -1445,7 +1445,7 @@ __acquires(&uap->port.lock) #endif } } @@ -328,5 +328,5 @@ index cd3913b933c7..aec67d740e44 100644 clk_disable(uap->clk); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0044-serial-apb-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0044-serial-apb-Use-port-lock-wrappers.patch index 0984c546..76d05d0e 100644 --- a/buildroot-external/patches/linux/0044-serial-apb-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0044-serial-apb-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From ed166a0a00c424b2b9dd29b758500775c1c1a275 Mon Sep 17 00:00:00 2001 +From ad2560897d66415d623f218e9a032e7200197264 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:35 +0206 -Subject: [PATCH 044/196] serial: apb: Use port lock wrappers +Subject: [PATCH 044/198] serial: apb: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -77,5 +77,5 @@ index d3cb341f2c55..364599f256db 100644 static const char *apbuart_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0045-serial-ar933x-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0045-serial-ar933x-Use-port-lock-wrappers.patch index 1dfe9b22..7a22d3fd 100644 --- a/buildroot-external/patches/linux/0045-serial-ar933x-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0045-serial-ar933x-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 8777b7deb3069b2747696a2971979eaf11d0d42c Mon Sep 17 00:00:00 2001 +From c7e0556406938d6434991aeff87e85124c0c5a16 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:36 +0206 -Subject: [PATCH 045/196] serial: ar933x: Use port lock wrappers +Subject: [PATCH 045/198] serial: ar933x: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -145,5 +145,5 @@ index 924c1a89347c..ffd234673177 100644 local_irq_restore(flags); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0046-serial-arc_uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0046-serial-arc_uart-Use-port-lock-wrappers.patch index c161dfdd..5f78c562 100644 --- a/buildroot-external/patches/linux/0046-serial-arc_uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0046-serial-arc_uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 58e377ebb1f28e1922aa731d02f8906b0585e8ed Mon Sep 17 00:00:00 2001 +From 5a0e18332bea1b6453bd4e806c6504138127371d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:37 +0206 -Subject: [PATCH 046/196] serial: arc_uart: Use port lock wrappers +Subject: [PATCH 046/198] serial: arc_uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -98,5 +98,5 @@ index ad4ae19b6ce3..1aa5b2b49c26 100644 static struct console arc_console = { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0047-serial-atmel-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0047-serial-atmel-Use-port-lock-wrappers.patch index 899aa12b..67b6cee5 100644 --- a/buildroot-external/patches/linux/0047-serial-atmel-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0047-serial-atmel-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From ad6ee8430287f4d453bdbe0870c897f3568cb50f Mon Sep 17 00:00:00 2001 +From f84225dbdb7cd9ef908795d44a815b98818b9e43 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:38 +0206 -Subject: [PATCH 047/196] serial: atmel: Use port lock wrappers +Subject: [PATCH 047/198] serial: atmel: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -120,5 +120,5 @@ index 88cdafa5ac54..1946fafc3f3e 100644 } } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0048-serial-bcm63xx-uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0048-serial-bcm63xx-uart-Use-port-lock-wrappers.patch index fb7ca139..af162bf8 100644 --- a/buildroot-external/patches/linux/0048-serial-bcm63xx-uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0048-serial-bcm63xx-uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From bc56987ad8ef8a8948ba64ffa8302ea324913079 Mon Sep 17 00:00:00 2001 +From 254504b36554b8987691ad1cd81bbb8b798eba0c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:39 +0206 -Subject: [PATCH 048/196] serial: bcm63xx-uart: Use port lock wrappers +Subject: [PATCH 048/198] serial: bcm63xx-uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -129,5 +129,5 @@ index 0dd8cceb837c..4a08fd5ee61b 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0049-serial-cpm_uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0049-serial-cpm_uart-Use-port-lock-wrappers.patch index d3e51d78..8759b56f 100644 --- a/buildroot-external/patches/linux/0049-serial-cpm_uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0049-serial-cpm_uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 664d0c4022312cc8691aa574818f4301e9698f35 Mon Sep 17 00:00:00 2001 +From 3c86efdaa2738e88dd9e7f55652954a93723e501 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:40 +0206 -Subject: [PATCH 049/196] serial: cpm_uart: Use port lock wrappers +Subject: [PATCH 049/198] serial: cpm_uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -71,5 +71,5 @@ index 626423022d62..be4af6eda4c2 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0050-serial-digicolor-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0050-serial-digicolor-Use-port-lock-wrappers.patch index 421a0672..1e21b8a6 100644 --- a/buildroot-external/patches/linux/0050-serial-digicolor-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0050-serial-digicolor-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 9ae489d6a664bdc487229b8847c4f29a126fb228 Mon Sep 17 00:00:00 2001 +From 7bc5b3a4befaa2219dfd5d7c5c069d563afa0a81 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:41 +0206 -Subject: [PATCH 050/196] serial: digicolor: Use port lock wrappers +Subject: [PATCH 050/198] serial: digicolor: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -114,5 +114,5 @@ index 128b5479e813..5004125f3045 100644 /* Wait for transmitter to become empty */ do { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0051-serial-dz-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0051-serial-dz-Use-port-lock-wrappers.patch index bf010bff..b6a1b9a7 100644 --- a/buildroot-external/patches/linux/0051-serial-dz-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0051-serial-dz-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 279159191fb892ad19a47abfe969e4cdc19d8ff0 Mon Sep 17 00:00:00 2001 +From 0ac36a1ae3846dfd22081abfd17040d1fd8fcaae Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:42 +0206 -Subject: [PATCH 051/196] serial: dz: Use port lock wrappers +Subject: [PATCH 051/198] serial: dz: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -162,5 +162,5 @@ index 667f52e83277..6df7af9edc1c 100644 do { trdy = dz_in(dport, DZ_CSR); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0052-serial-linflexuart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0052-serial-linflexuart-Use-port-lock-wrappers.patch index 98ccd784..39589c88 100644 --- a/buildroot-external/patches/linux/0052-serial-linflexuart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0052-serial-linflexuart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 9ab5733ab07134629faf9863da976517fefa5d2a Mon Sep 17 00:00:00 2001 +From 1828619da9181f91be6adbe6604899385154c4ce Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:43 +0206 -Subject: [PATCH 052/196] serial: linflexuart: Use port lock wrappers +Subject: [PATCH 052/198] serial: linflexuart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -144,5 +144,5 @@ index 249cb380c3c6..7fa809a405e8 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0053-serial-fsl_lpuart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0053-serial-fsl_lpuart-Use-port-lock-wrappers.patch index 35b04742..19044c52 100644 --- a/buildroot-external/patches/linux/0053-serial-fsl_lpuart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0053-serial-fsl_lpuart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 46bfa550759cde139a65320e120a534c997d9ac2 Mon Sep 17 00:00:00 2001 +From ddae91de984cb3f971fb7456e94c9fc295a49bbb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:44 +0206 -Subject: [PATCH 053/196] serial: fsl_lpuart: Use port lock wrappers +Subject: [PATCH 053/198] serial: fsl_lpuart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c -index f72e1340b47d..6d0cfb2e86b4 100644 +index 385b41275e8b..71d0cbd74807 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -532,9 +532,9 @@ static void lpuart_dma_tx_complete(void *arg) @@ -288,7 +288,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 sport->port.read_status_mask = 0; if (termios->c_iflag & INPCK) -@@ -2359,7 +2359,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -2362,7 +2362,7 @@ lpuart32_set_termios(struct uart_port *port, struct ktermios *termios, sport->lpuart_dma_rx_use = false; } @@ -297,7 +297,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 } static const char *lpuart_type(struct uart_port *port) -@@ -2477,9 +2477,9 @@ lpuart_console_write(struct console *co, const char *s, unsigned int count) +@@ -2480,9 +2480,9 @@ lpuart_console_write(struct console *co, const char *s, unsigned int count) int locked = 1; if (oops_in_progress) @@ -309,7 +309,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 /* first save CR2 and then disable interrupts */ cr2 = old_cr2 = readb(sport->port.membase + UARTCR2); -@@ -2495,7 +2495,7 @@ lpuart_console_write(struct console *co, const char *s, unsigned int count) +@@ -2498,7 +2498,7 @@ lpuart_console_write(struct console *co, const char *s, unsigned int count) writeb(old_cr2, sport->port.membase + UARTCR2); if (locked) @@ -318,7 +318,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 } static void -@@ -2507,9 +2507,9 @@ lpuart32_console_write(struct console *co, const char *s, unsigned int count) +@@ -2510,9 +2510,9 @@ lpuart32_console_write(struct console *co, const char *s, unsigned int count) int locked = 1; if (oops_in_progress) @@ -330,7 +330,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 /* first save CR2 and then disable interrupts */ cr = old_cr = lpuart32_read(&sport->port, UARTCTRL); -@@ -2525,7 +2525,7 @@ lpuart32_console_write(struct console *co, const char *s, unsigned int count) +@@ -2528,7 +2528,7 @@ lpuart32_console_write(struct console *co, const char *s, unsigned int count) lpuart32_write(&sport->port, old_cr, UARTCTRL); if (locked) @@ -339,7 +339,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 } /* -@@ -3089,7 +3089,7 @@ static int lpuart_suspend(struct device *dev) +@@ -3092,7 +3092,7 @@ static int lpuart_suspend(struct device *dev) uart_suspend_port(&lpuart_reg, &sport->port); if (lpuart_uport_is_active(sport)) { @@ -348,7 +348,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 if (lpuart_is_32(sport)) { /* disable Rx/Tx and interrupts */ temp = lpuart32_read(&sport->port, UARTCTRL); -@@ -3101,7 +3101,7 @@ static int lpuart_suspend(struct device *dev) +@@ -3104,7 +3104,7 @@ static int lpuart_suspend(struct device *dev) temp &= ~(UARTCR2_TE | UARTCR2_TIE | UARTCR2_TCIE); writeb(temp, sport->port.membase + UARTCR2); } @@ -357,7 +357,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 if (sport->lpuart_dma_rx_use) { /* -@@ -3114,7 +3114,7 @@ static int lpuart_suspend(struct device *dev) +@@ -3117,7 +3117,7 @@ static int lpuart_suspend(struct device *dev) lpuart_dma_rx_free(&sport->port); /* Disable Rx DMA to use UART port as wakeup source */ @@ -366,7 +366,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 if (lpuart_is_32(sport)) { temp = lpuart32_read(&sport->port, UARTBAUD); lpuart32_write(&sport->port, temp & ~UARTBAUD_RDMAE, -@@ -3123,11 +3123,11 @@ static int lpuart_suspend(struct device *dev) +@@ -3126,11 +3126,11 @@ static int lpuart_suspend(struct device *dev) writeb(readb(sport->port.membase + UARTCR5) & ~UARTCR5_RDMAS, sport->port.membase + UARTCR5); } @@ -380,7 +380,7 @@ index f72e1340b47d..6d0cfb2e86b4 100644 if (lpuart_is_32(sport)) { temp = lpuart32_read(&sport->port, UARTBAUD); temp &= ~UARTBAUD_TDMAE; -@@ -3137,7 +3137,7 @@ static int lpuart_suspend(struct device *dev) +@@ -3140,7 +3140,7 @@ static int lpuart_suspend(struct device *dev) temp &= ~UARTCR5_TDMAS; writeb(temp, sport->port.membase + UARTCR5); } @@ -390,5 +390,5 @@ index f72e1340b47d..6d0cfb2e86b4 100644 dmaengine_terminate_sync(sport->dma_tx_chan); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0054-serial-icom-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0054-serial-icom-Use-port-lock-wrappers.patch index 8bdae50e..34669493 100644 --- a/buildroot-external/patches/linux/0054-serial-icom-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0054-serial-icom-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 09d3a495672166b07e612721a98429bb70bec397 Mon Sep 17 00:00:00 2001 +From 202602b9b6e46d9c37567e23999aac958fd162a8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:45 +0206 -Subject: [PATCH 054/196] serial: icom: Use port lock wrappers +Subject: [PATCH 054/198] serial: icom: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -152,5 +152,5 @@ index 819f957b6b84..a75eafbcbea3 100644 static const char *icom_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0055-serial-imx-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0055-serial-imx-Use-port-lock-wrappers.patch index 86f317c7..f9c54849 100644 --- a/buildroot-external/patches/linux/0055-serial-imx-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0055-serial-imx-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 07d331feb4488de7831ce3f0b4fbc5a211e74663 Mon Sep 17 00:00:00 2001 +From 63366d15914d5b5eb32438f1b7a5fc8be59e0dd9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:46 +0206 -Subject: [PATCH 055/196] serial: imx: Use port lock wrappers +Subject: [PATCH 055/198] serial: imx: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,10 +37,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c -index 2fbb9b597752..54b760d845c0 100644 +index c77831e91ec2..66420a992539 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c -@@ -575,7 +575,7 @@ static void imx_uart_dma_tx_callback(void *data) +@@ -584,7 +584,7 @@ static void imx_uart_dma_tx_callback(void *data) unsigned long flags; u32 ucr1; @@ -49,7 +49,7 @@ index 2fbb9b597752..54b760d845c0 100644 dma_unmap_sg(sport->port.dev, sgl, sport->dma_tx_nents, DMA_TO_DEVICE); -@@ -600,7 +600,7 @@ static void imx_uart_dma_tx_callback(void *data) +@@ -609,7 +609,7 @@ static void imx_uart_dma_tx_callback(void *data) imx_uart_writel(sport, ucr4, UCR4); } @@ -58,7 +58,7 @@ index 2fbb9b597752..54b760d845c0 100644 } /* called with port.lock taken and irqs off */ -@@ -766,11 +766,11 @@ static irqreturn_t imx_uart_rtsint(int irq, void *dev_id) +@@ -780,11 +780,11 @@ static irqreturn_t imx_uart_rtsint(int irq, void *dev_id) struct imx_port *sport = dev_id; irqreturn_t ret; @@ -72,7 +72,7 @@ index 2fbb9b597752..54b760d845c0 100644 return ret; } -@@ -779,9 +779,9 @@ static irqreturn_t imx_uart_txint(int irq, void *dev_id) +@@ -793,9 +793,9 @@ static irqreturn_t imx_uart_txint(int irq, void *dev_id) { struct imx_port *sport = dev_id; @@ -84,7 +84,7 @@ index 2fbb9b597752..54b760d845c0 100644 return IRQ_HANDLED; } -@@ -895,11 +895,11 @@ static irqreturn_t imx_uart_rxint(int irq, void *dev_id) +@@ -909,11 +909,11 @@ static irqreturn_t imx_uart_rxint(int irq, void *dev_id) struct imx_port *sport = dev_id; irqreturn_t ret; @@ -98,7 +98,7 @@ index 2fbb9b597752..54b760d845c0 100644 return ret; } -@@ -962,7 +962,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) +@@ -976,7 +976,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) unsigned int usr1, usr2, ucr1, ucr2, ucr3, ucr4; irqreturn_t ret = IRQ_NONE; @@ -107,7 +107,7 @@ index 2fbb9b597752..54b760d845c0 100644 usr1 = imx_uart_readl(sport, USR1); usr2 = imx_uart_readl(sport, USR2); -@@ -1032,7 +1032,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) +@@ -1046,7 +1046,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id) ret = IRQ_HANDLED; } @@ -116,7 +116,7 @@ index 2fbb9b597752..54b760d845c0 100644 return ret; } -@@ -1115,7 +1115,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state) +@@ -1129,7 +1129,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state) unsigned long flags; u32 ucr1; @@ -125,7 +125,7 @@ index 2fbb9b597752..54b760d845c0 100644 ucr1 = imx_uart_readl(sport, UCR1) & ~UCR1_SNDBRK; -@@ -1124,7 +1124,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state) +@@ -1138,7 +1138,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state) imx_uart_writel(sport, ucr1, UCR1); @@ -134,7 +134,7 @@ index 2fbb9b597752..54b760d845c0 100644 } /* -@@ -1137,9 +1137,9 @@ static void imx_uart_timeout(struct timer_list *t) +@@ -1151,9 +1151,9 @@ static void imx_uart_timeout(struct timer_list *t) unsigned long flags; if (sport->port.state) { @@ -146,7 +146,7 @@ index 2fbb9b597752..54b760d845c0 100644 mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT); } -@@ -1169,9 +1169,9 @@ static void imx_uart_dma_rx_callback(void *data) +@@ -1183,9 +1183,9 @@ static void imx_uart_dma_rx_callback(void *data) status = dmaengine_tx_status(chan, sport->rx_cookie, &state); if (status == DMA_ERROR) { @@ -158,7 +158,7 @@ index 2fbb9b597752..54b760d845c0 100644 return; } -@@ -1200,9 +1200,9 @@ static void imx_uart_dma_rx_callback(void *data) +@@ -1214,9 +1214,9 @@ static void imx_uart_dma_rx_callback(void *data) r_bytes = rx_ring->head - rx_ring->tail; /* If we received something, check for 0xff flood */ @@ -170,7 +170,7 @@ index 2fbb9b597752..54b760d845c0 100644 if (!(sport->port.ignore_status_mask & URXD_DUMMY_READ)) { -@@ -1460,7 +1460,7 @@ static int imx_uart_startup(struct uart_port *port) +@@ -1474,7 +1474,7 @@ static int imx_uart_startup(struct uart_port *port) if (!uart_console(port) && imx_uart_dma_init(sport) == 0) dma_is_inited = 1; @@ -179,7 +179,7 @@ index 2fbb9b597752..54b760d845c0 100644 /* Reset fifo's and state machines */ imx_uart_soft_reset(sport); -@@ -1533,7 +1533,7 @@ static int imx_uart_startup(struct uart_port *port) +@@ -1547,7 +1547,7 @@ static int imx_uart_startup(struct uart_port *port) imx_uart_disable_loopback_rs485(sport); @@ -188,7 +188,7 @@ index 2fbb9b597752..54b760d845c0 100644 return 0; } -@@ -1558,21 +1558,21 @@ static void imx_uart_shutdown(struct uart_port *port) +@@ -1572,21 +1572,21 @@ static void imx_uart_shutdown(struct uart_port *port) sport->dma_is_rxing = 0; } @@ -214,7 +214,7 @@ index 2fbb9b597752..54b760d845c0 100644 /* * Stop our timer. -@@ -1583,7 +1583,7 @@ static void imx_uart_shutdown(struct uart_port *port) +@@ -1597,7 +1597,7 @@ static void imx_uart_shutdown(struct uart_port *port) * Disable all interrupts, port and break condition. */ @@ -223,7 +223,7 @@ index 2fbb9b597752..54b760d845c0 100644 ucr1 = imx_uart_readl(sport, UCR1); ucr1 &= ~(UCR1_TRDYEN | UCR1_RRDYEN | UCR1_RTSDEN | UCR1_RXDMAEN | -@@ -1605,7 +1605,7 @@ static void imx_uart_shutdown(struct uart_port *port) +@@ -1619,7 +1619,7 @@ static void imx_uart_shutdown(struct uart_port *port) ucr4 &= ~UCR4_TCEN; imx_uart_writel(sport, ucr4, UCR4); @@ -232,7 +232,7 @@ index 2fbb9b597752..54b760d845c0 100644 clk_disable_unprepare(sport->clk_per); clk_disable_unprepare(sport->clk_ipg); -@@ -1668,7 +1668,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -1682,7 +1682,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios, baud = uart_get_baud_rate(port, termios, old, 50, port->uartclk / 16); quot = uart_get_divisor(port, baud); @@ -241,7 +241,7 @@ index 2fbb9b597752..54b760d845c0 100644 /* * Read current UCR2 and save it for future use, then clear all the bits -@@ -1796,7 +1796,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios, +@@ -1810,7 +1810,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios, if (UART_ENABLE_MS(&sport->port, termios->c_cflag)) imx_uart_enable_ms(&sport->port); @@ -250,7 +250,7 @@ index 2fbb9b597752..54b760d845c0 100644 } static const char *imx_uart_type(struct uart_port *port) -@@ -1858,7 +1858,7 @@ static int imx_uart_poll_init(struct uart_port *port) +@@ -1872,7 +1872,7 @@ static int imx_uart_poll_init(struct uart_port *port) imx_uart_setup_ufcr(sport, TXTL_DEFAULT, RXTL_DEFAULT); @@ -259,7 +259,7 @@ index 2fbb9b597752..54b760d845c0 100644 /* * Be careful about the order of enabling bits here. First enable the -@@ -1886,7 +1886,7 @@ static int imx_uart_poll_init(struct uart_port *port) +@@ -1900,7 +1900,7 @@ static int imx_uart_poll_init(struct uart_port *port) imx_uart_writel(sport, ucr1 | UCR1_RRDYEN, UCR1); imx_uart_writel(sport, ucr2 | UCR2_ATEN, UCR2); @@ -268,7 +268,7 @@ index 2fbb9b597752..54b760d845c0 100644 return 0; } -@@ -2001,9 +2001,9 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count) +@@ -2015,9 +2015,9 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count) if (sport->port.sysrq) locked = 0; else if (oops_in_progress) @@ -280,7 +280,7 @@ index 2fbb9b597752..54b760d845c0 100644 /* * First, save UCR1/2/3 and then disable interrupts -@@ -2031,7 +2031,7 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count) +@@ -2045,7 +2045,7 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count) imx_uart_ucrs_restore(sport, &old_ucr); if (locked) @@ -289,7 +289,7 @@ index 2fbb9b597752..54b760d845c0 100644 } /* -@@ -2189,10 +2189,10 @@ static enum hrtimer_restart imx_trigger_start_tx(struct hrtimer *t) +@@ -2203,10 +2203,10 @@ static enum hrtimer_restart imx_trigger_start_tx(struct hrtimer *t) struct imx_port *sport = container_of(t, struct imx_port, trigger_start_tx); unsigned long flags; @@ -302,7 +302,7 @@ index 2fbb9b597752..54b760d845c0 100644 return HRTIMER_NORESTART; } -@@ -2202,10 +2202,10 @@ static enum hrtimer_restart imx_trigger_stop_tx(struct hrtimer *t) +@@ -2216,10 +2216,10 @@ static enum hrtimer_restart imx_trigger_stop_tx(struct hrtimer *t) struct imx_port *sport = container_of(t, struct imx_port, trigger_stop_tx); unsigned long flags; @@ -315,7 +315,7 @@ index 2fbb9b597752..54b760d845c0 100644 return HRTIMER_NORESTART; } -@@ -2472,9 +2472,9 @@ static void imx_uart_restore_context(struct imx_port *sport) +@@ -2486,9 +2486,9 @@ static void imx_uart_restore_context(struct imx_port *sport) { unsigned long flags; @@ -327,7 +327,7 @@ index 2fbb9b597752..54b760d845c0 100644 return; } -@@ -2489,7 +2489,7 @@ static void imx_uart_restore_context(struct imx_port *sport) +@@ -2503,7 +2503,7 @@ static void imx_uart_restore_context(struct imx_port *sport) imx_uart_writel(sport, sport->saved_reg[2], UCR3); imx_uart_writel(sport, sport->saved_reg[3], UCR4); sport->context_saved = false; @@ -336,7 +336,7 @@ index 2fbb9b597752..54b760d845c0 100644 } static void imx_uart_save_context(struct imx_port *sport) -@@ -2497,7 +2497,7 @@ static void imx_uart_save_context(struct imx_port *sport) +@@ -2511,7 +2511,7 @@ static void imx_uart_save_context(struct imx_port *sport) unsigned long flags; /* Save necessary regs */ @@ -345,7 +345,7 @@ index 2fbb9b597752..54b760d845c0 100644 sport->saved_reg[0] = imx_uart_readl(sport, UCR1); sport->saved_reg[1] = imx_uart_readl(sport, UCR2); sport->saved_reg[2] = imx_uart_readl(sport, UCR3); -@@ -2509,7 +2509,7 @@ static void imx_uart_save_context(struct imx_port *sport) +@@ -2523,7 +2523,7 @@ static void imx_uart_save_context(struct imx_port *sport) sport->saved_reg[8] = imx_uart_readl(sport, UBMR); sport->saved_reg[9] = imx_uart_readl(sport, IMX21_UTS); sport->context_saved = true; @@ -355,5 +355,5 @@ index 2fbb9b597752..54b760d845c0 100644 static void imx_uart_enable_wakeup(struct imx_port *sport, bool on) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0056-serial-ip22zilog-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0056-serial-ip22zilog-Use-port-lock-wrappers.patch index 4ccf10e0..a22ce6b6 100644 --- a/buildroot-external/patches/linux/0056-serial-ip22zilog-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0056-serial-ip22zilog-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From f5e3e9348a0f40d7684f54037e1e29707a9afc6f Mon Sep 17 00:00:00 2001 +From 4c21b6f6ec1d1d44387e05e35d0e32e435421ca6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:47 +0206 -Subject: [PATCH 056/196] serial: ip22zilog: Use port lock wrappers +Subject: [PATCH 056/198] serial: ip22zilog: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -186,5 +186,5 @@ index 845ff706bc59..320b29cd4683 100644 if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0057-serial-jsm-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0057-serial-jsm-Use-port-lock-wrappers.patch index de7d3a53..8131f8eb 100644 --- a/buildroot-external/patches/linux/0057-serial-jsm-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0057-serial-jsm-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 2d16a8c5689cf2e2249a8011b795e1d0abab80af Mon Sep 17 00:00:00 2001 +From 9d49519691d85841c7bbec5a1b5420d8bb5c2aab Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:48 +0206 -Subject: [PATCH 057/196] serial: jsm: Use port lock wrappers +Subject: [PATCH 057/198] serial: jsm: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -127,5 +127,5 @@ index 222afc270c88..ce0fef7e2c66 100644 static const char *jsm_tty_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0058-serial-liteuart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0058-serial-liteuart-Use-port-lock-wrappers.patch index da428980..e59f3b74 100644 --- a/buildroot-external/patches/linux/0058-serial-liteuart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0058-serial-liteuart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 51106ea475766f95499f66c81695ba0ba2844023 Mon Sep 17 00:00:00 2001 +From 792390c8e24a3be75621990da07994b349ed81bf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:49 +0206 -Subject: [PATCH 058/196] serial: liteuart: Use port lock wrappers +Subject: [PATCH 058/198] serial: liteuart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -111,5 +111,5 @@ index d881cdd2a58f..a25ab1efe38f 100644 static int liteuart_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0059-serial-lpc32xx_hs-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0059-serial-lpc32xx_hs-Use-port-lock-wrappers.patch index be31d09f..c3e19d8c 100644 --- a/buildroot-external/patches/linux/0059-serial-lpc32xx_hs-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0059-serial-lpc32xx_hs-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From c6983dd875db2ab4340af77fca5afdcbb6e92a8a Mon Sep 17 00:00:00 2001 +From 4745341be24af5281b708ec6b7c62d92eadf43e8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:50 +0206 -Subject: [PATCH 059/196] serial: lpc32xx_hs: Use port lock wrappers +Subject: [PATCH 059/198] serial: lpc32xx_hs: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -149,5 +149,5 @@ index b38fe4728c26..5149a947b7fe 100644 /* Don't rewrite B0 */ if (tty_termios_baud_rate(termios)) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0060-serial-ma35d1-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0060-serial-ma35d1-Use-port-lock-wrappers.patch index 72defd08..c22773fd 100644 --- a/buildroot-external/patches/linux/0060-serial-ma35d1-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0060-serial-ma35d1-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 26ecac5fb6df25e05028221e98b442d3440996cf Mon Sep 17 00:00:00 2001 +From df848f9ebfac6dd30358fbdc179b911a60c0ec5b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:51 +0206 -Subject: [PATCH 060/196] serial: ma35d1: Use port lock wrappers +Subject: [PATCH 060/198] serial: ma35d1: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -118,5 +118,5 @@ index 69da24565b99..73910c54d6be 100644 static int __init ma35d1serial_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0061-serial-mcf-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0061-serial-mcf-Use-port-lock-wrappers.patch index e787d1f2..3942aa80 100644 --- a/buildroot-external/patches/linux/0061-serial-mcf-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0061-serial-mcf-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 9839424386e00349034515ff5bc12cb0d8aa47fb Mon Sep 17 00:00:00 2001 +From 06baf2767bd53167bc4c02da5971c98e12c13397 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:52 +0206 -Subject: [PATCH 061/196] serial: mcf: Use port lock wrappers +Subject: [PATCH 061/198] serial: mcf: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -128,5 +128,5 @@ index 1666ce012e5e..91b15243f6c6 100644 return ret; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0062-serial-men_z135_uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0062-serial-men_z135_uart-Use-port-lock-wrappers.patch index 6a0eab35..a08bef8d 100644 --- a/buildroot-external/patches/linux/0062-serial-men_z135_uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0062-serial-men_z135_uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From d0d166377656a57a11a75a0936a72356daba9eb0 Mon Sep 17 00:00:00 2001 +From 796bb19b5478aa51ebb6ac0fdc39186d59759b27 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:53 +0206 -Subject: [PATCH 062/196] serial: men_z135_uart: Use port lock wrappers +Subject: [PATCH 062/198] serial: men_z135_uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -77,5 +77,5 @@ index d2502aaa3e8c..8048fa542fc4 100644 static const char *men_z135_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0063-serial-meson-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0063-serial-meson-Use-port-lock-wrappers.patch index f11a4dbb..c0cec968 100644 --- a/buildroot-external/patches/linux/0063-serial-meson-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0063-serial-meson-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From d79a588b6e1f2d943dcf94453d53e0ecf1a38eaf Mon Sep 17 00:00:00 2001 +From 7b6095010a23aa78ad87b589ff39473ad892011a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:54 +0206 -Subject: [PATCH 063/196] serial: meson: Use port lock wrappers +Subject: [PATCH 063/198] serial: meson: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -169,5 +169,5 @@ index 9388b9ddea3b..4c1d2089a0bb 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0064-serial-milbeaut_usio-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0064-serial-milbeaut_usio-Use-port-lock-wrappers.patch index 5a68bea4..239bf1eb 100644 --- a/buildroot-external/patches/linux/0064-serial-milbeaut_usio-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0064-serial-milbeaut_usio-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 98dc64ab1fdd00244eefd8bb5796577c7ad6b778 Mon Sep 17 00:00:00 2001 +From e457979d570981b53b0b85d59f0a6bb2cbe3853b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:55 +0206 -Subject: [PATCH 064/196] serial: milbeaut_usio: Use port lock wrappers +Subject: [PATCH 064/198] serial: milbeaut_usio: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -102,5 +102,5 @@ index 70a910085e93..db3b81f2aa57 100644 static const char *mlb_usio_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0065-serial-mpc52xx-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0065-serial-mpc52xx-Use-port-lock-wrappers.patch index f64f4732..99b58a44 100644 --- a/buildroot-external/patches/linux/0065-serial-mpc52xx-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0065-serial-mpc52xx-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 1803501f5d4ad38b1c8eb7ff838f16937fa3976a Mon Sep 17 00:00:00 2001 +From 20988af9eed091714c307e7a6d080cf51ef874b1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:56 +0206 -Subject: [PATCH 065/196] serial: mpc52xx: Use port lock wrappers +Subject: [PATCH 065/198] serial: mpc52xx: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -90,5 +90,5 @@ index 916507b8f31d..a252465e745f 100644 return ret; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0066-serial-mps2-uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0066-serial-mps2-uart-Use-port-lock-wrappers.patch index a5f27501..231de0ca 100644 --- a/buildroot-external/patches/linux/0066-serial-mps2-uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0066-serial-mps2-uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 8375fd64426b9440da7af602dd3ffa6e4f09324a Mon Sep 17 00:00:00 2001 +From f3a08238f90b3ada6988a984fa2fade2bf26f007 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:57 +0206 -Subject: [PATCH 066/196] serial: mps2-uart: Use port lock wrappers +Subject: [PATCH 066/198] serial: mps2-uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -104,5 +104,5 @@ index ea5a7911cb15..2a4c09f3a834 100644 if (tty_termios_baud_rate(termios)) tty_termios_encode_baud_rate(termios, baud, baud); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0067-serial-msm-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0067-serial-msm-Use-port-lock-wrappers.patch index 5d6ee029..12e24e27 100644 --- a/buildroot-external/patches/linux/0067-serial-msm-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0067-serial-msm-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From a6e8aee3001c0312bb7e408bf47ce1ab3cfb32ab Mon Sep 17 00:00:00 2001 +From 9b9a28a033ae863d23d071bba13f6c34d154e3bb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:58 +0206 -Subject: [PATCH 067/196] serial: msm: Use port lock wrappers +Subject: [PATCH 067/198] serial: msm: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -186,5 +186,5 @@ index 90953e679e38..597264b546fd 100644 local_irq_restore(flags); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0068-serial-mvebu-uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0068-serial-mvebu-uart-Use-port-lock-wrappers.patch index 753b9388..9315c7b8 100644 --- a/buildroot-external/patches/linux/0068-serial-mvebu-uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0068-serial-mvebu-uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 7ac7e384900ed2ffe0fe5a04265b366ce7238a3f Mon Sep 17 00:00:00 2001 +From 2afc44181b5734d06a4719ac7d4b12264dce9deb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:43:59 +0206 -Subject: [PATCH 068/196] serial: mvebu-uart: Use port lock wrappers +Subject: [PATCH 068/198] serial: mvebu-uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -109,5 +109,5 @@ index ea924e9b913b..0255646bc175 100644 static int mvebu_uart_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0069-serial-omap-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0069-serial-omap-Use-port-lock-wrappers.patch index b0cc94c0..8924d1c2 100644 --- a/buildroot-external/patches/linux/0069-serial-omap-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0069-serial-omap-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From e2bbf91f5aa8efe291dd496739c348eae6b65d2d Mon Sep 17 00:00:00 2001 +From c6aeabe6504b5812d8063d40f9c34010a160fef0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:00 +0206 -Subject: [PATCH 069/196] serial: omap: Use port lock wrappers +Subject: [PATCH 069/198] serial: omap: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -181,5 +181,5 @@ index 135a838f517a..f4c6ff806465 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0070-serial-owl-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0070-serial-owl-Use-port-lock-wrappers.patch index 55a04fcb..d75e294c 100644 --- a/buildroot-external/patches/linux/0070-serial-owl-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0070-serial-owl-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 9b2feafb80e749f910979bf5c22ee1685b53048f Mon Sep 17 00:00:00 2001 +From aed618ec8041d94adf724a33348ac7f6ed5d2f52 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:01 +0206 -Subject: [PATCH 070/196] serial: owl: Use port lock wrappers +Subject: [PATCH 070/198] serial: owl: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -148,5 +148,5 @@ index e99970a9437f..919f5e5aa0f1 100644 local_irq_restore(flags); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0071-serial-pch-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0071-serial-pch-Use-port-lock-wrappers.patch index b0338461..bc1a34ee 100644 --- a/buildroot-external/patches/linux/0071-serial-pch-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0071-serial-pch-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From b6db5f63edaf7679a15ec55f25ca8d0eb91fdfeb Mon Sep 17 00:00:00 2001 +From 6052105716d7de512abe91f59e0bcbfb1d3e5978 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:02 +0206 -Subject: [PATCH 071/196] serial: pch: Use port lock wrappers +Subject: [PATCH 071/198] serial: pch: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -81,5 +81,5 @@ index cc83b772b7ca..436cc6d52a11 100644 spin_unlock(&priv->lock); local_irq_restore(flags); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0072-serial-pic32-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0072-serial-pic32-Use-port-lock-wrappers.patch index a3e7cab8..81b54ca7 100644 --- a/buildroot-external/patches/linux/0072-serial-pic32-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0072-serial-pic32-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From c14bc8b2990b302c6491ff9f1fc07bacc74f6a02 Mon Sep 17 00:00:00 2001 +From a3e16abc02be270ef158758fb129e8be54e40577 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:03 +0206 -Subject: [PATCH 072/196] serial: pic32: Use port lock wrappers +Subject: [PATCH 072/198] serial: pic32: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -119,5 +119,5 @@ index e308d5022b3f..3a95bf5d55d3 100644 /* serial core request to claim uart iomem */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0073-serial-pmac_zilog-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0073-serial-pmac_zilog-Use-port-lock-wrappers.patch index 9f9c9f10..8e6ebe8c 100644 --- a/buildroot-external/patches/linux/0073-serial-pmac_zilog-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0073-serial-pmac_zilog-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From df5dddad723275a657d5d1bbeb832a71bdbf6b69 Mon Sep 17 00:00:00 2001 +From 8b2afd65acea3ba83a71dde9d62262f9242a5dd7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:04 +0206 -Subject: [PATCH 073/196] serial: pmac_zilog: Use port lock wrappers +Subject: [PATCH 073/198] serial: pmac_zilog: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -233,5 +233,5 @@ index 13668ffdb1e7..c8bf08c19c64 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0074-serial-pxa-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0074-serial-pxa-Use-port-lock-wrappers.patch index 88764f94..9c2b720b 100644 --- a/buildroot-external/patches/linux/0074-serial-pxa-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0074-serial-pxa-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 2c8fbdf011421d0e63a7c1d116fd4ad727fb9b5e Mon Sep 17 00:00:00 2001 +From 562160975c4f9073ed4f010cc11718b5134a42fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:05 +0206 -Subject: [PATCH 074/196] serial: pxa: Use port lock wrappers +Subject: [PATCH 074/198] serial: pxa: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -151,5 +151,5 @@ index 73c60f5ea027..46e70e155aab 100644 clk_disable(up->clk); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0075-serial-qcom-geni-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0075-serial-qcom-geni-Use-port-lock-wrappers.patch index 53bbe1b3..961cdcb7 100644 --- a/buildroot-external/patches/linux/0075-serial-qcom-geni-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0075-serial-qcom-geni-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From de2377b368081f7322e4ee7ed6f4a157f263ef22 Mon Sep 17 00:00:00 2001 +From 1f68c281021058402d7afdc27d8a3787271ce0c1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:06 +0206 -Subject: [PATCH 075/196] serial: qcom-geni: Use port lock wrappers +Subject: [PATCH 075/198] serial: qcom-geni: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c -index b8aa4c1293ba..7e78f97e8f43 100644 +index 2e1b1c827dfe..549909644011 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -482,9 +482,9 @@ static void qcom_geni_serial_console_write(struct console *co, const char *s, @@ -62,7 +62,7 @@ index b8aa4c1293ba..7e78f97e8f43 100644 } static void handle_rx_console(struct uart_port *uport, u32 bytes, bool drop) -@@ -970,7 +970,7 @@ static irqreturn_t qcom_geni_serial_isr(int isr, void *dev) +@@ -972,7 +972,7 @@ static irqreturn_t qcom_geni_serial_isr(int isr, void *dev) if (uport->suspended) return IRQ_NONE; @@ -72,5 +72,5 @@ index b8aa4c1293ba..7e78f97e8f43 100644 m_irq_status = readl(uport->membase + SE_GENI_M_IRQ_STATUS); s_irq_status = readl(uport->membase + SE_GENI_S_IRQ_STATUS); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0076-serial-rda-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0076-serial-rda-Use-port-lock-wrappers.patch index 08e354bb..1123bd7c 100644 --- a/buildroot-external/patches/linux/0076-serial-rda-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0076-serial-rda-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 83a13a640f9b3927770dfdf6014780d739062197 Mon Sep 17 00:00:00 2001 +From c1952a62d5c169b632e1a01092ad0360cc16335a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:07 +0206 -Subject: [PATCH 076/196] serial: rda: Use port lock wrappers +Subject: [PATCH 076/198] serial: rda: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -178,5 +178,5 @@ index be5c842b5ba9..d824c8318f33 100644 local_irq_restore(flags); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0077-serial-rp2-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0077-serial-rp2-Use-port-lock-wrappers.patch index 7ddad850..8a119148 100644 --- a/buildroot-external/patches/linux/0077-serial-rp2-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0077-serial-rp2-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 90f64dfee3a0f539bf8c18fff8b502a3e59cf0cf Mon Sep 17 00:00:00 2001 +From 8437e789125eee68ce6dfa6f9416112aca4d0886 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:08 +0206 -Subject: [PATCH 077/196] serial: rp2: Use port lock wrappers +Subject: [PATCH 077/198] serial: rp2: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -115,5 +115,5 @@ index de220ac8ca54..d46a81cddfcd 100644 static const char *rp2_uart_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0078-serial-sa1100-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0078-serial-sa1100-Use-port-lock-wrappers.patch index 385d46cb..1069312c 100644 --- a/buildroot-external/patches/linux/0078-serial-sa1100-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0078-serial-sa1100-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From be60b8b83c06c81681588ea0d81dac85e14a775b Mon Sep 17 00:00:00 2001 +From 6845a4152e1754bf40372d61bbf7c2398e3f4399 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:09 +0206 -Subject: [PATCH 078/196] serial: sa1100: Use port lock wrappers +Subject: [PATCH 078/198] serial: sa1100: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -118,5 +118,5 @@ index ad011f1e2f4d..be7bcd75d9f4 100644 static const char *sa1100_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0079-serial-samsung_tty-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0079-serial-samsung_tty-Use-port-lock-wrappers.patch index cb91f568..a90b3010 100644 --- a/buildroot-external/patches/linux/0079-serial-samsung_tty-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0079-serial-samsung_tty-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 6e66d71f16182d96094a77a8756c364823924eb4 Mon Sep 17 00:00:00 2001 +From 9372712a3d7f5dd1ce1fdee77c5bbdfbbb4b01bf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:10 +0206 -Subject: [PATCH 079/196] serial: samsung_tty: Use port lock wrappers +Subject: [PATCH 079/198] serial: samsung_tty: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c -index 07fb8a9dac63..ee51a0368a55 100644 +index 5a4d88e13471..a82b65155f6e 100644 --- a/drivers/tty/serial/samsung_tty.c +++ b/drivers/tty/serial/samsung_tty.c @@ -248,7 +248,7 @@ static void s3c24xx_serial_rx_enable(struct uart_port *port) @@ -155,7 +155,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 return IRQ_HANDLED; } -@@ -1033,7 +1033,7 @@ static void s3c24xx_serial_break_ctl(struct uart_port *port, int break_state) +@@ -1032,7 +1032,7 @@ static void s3c24xx_serial_break_ctl(struct uart_port *port, int break_state) unsigned long flags; unsigned int ucon; @@ -164,7 +164,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 ucon = rd_regl(port, S3C2410_UCON); -@@ -1044,7 +1044,7 @@ static void s3c24xx_serial_break_ctl(struct uart_port *port, int break_state) +@@ -1043,7 +1043,7 @@ static void s3c24xx_serial_break_ctl(struct uart_port *port, int break_state) wr_regl(port, S3C2410_UCON, ucon); @@ -173,7 +173,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 } static int s3c24xx_serial_request_dma(struct s3c24xx_uart_port *p) -@@ -1303,7 +1303,7 @@ static int s3c64xx_serial_startup(struct uart_port *port) +@@ -1302,7 +1302,7 @@ static int s3c64xx_serial_startup(struct uart_port *port) ourport->rx_enabled = 1; ourport->tx_enabled = 0; @@ -182,7 +182,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 ufcon = rd_regl(port, S3C2410_UFCON); ufcon |= S3C2410_UFCON_RESETRX | S5PV210_UFCON_RXTRIG8; -@@ -1313,7 +1313,7 @@ static int s3c64xx_serial_startup(struct uart_port *port) +@@ -1312,7 +1312,7 @@ static int s3c64xx_serial_startup(struct uart_port *port) enable_rx_pio(ourport); @@ -191,7 +191,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 /* Enable Rx Interrupt */ s3c24xx_clear_bit(port, S3C64XX_UINTM_RXD, S3C64XX_UINTM); -@@ -1341,7 +1341,7 @@ static int apple_s5l_serial_startup(struct uart_port *port) +@@ -1340,7 +1340,7 @@ static int apple_s5l_serial_startup(struct uart_port *port) ourport->rx_enabled = 1; ourport->tx_enabled = 0; @@ -200,7 +200,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 ufcon = rd_regl(port, S3C2410_UFCON); ufcon |= S3C2410_UFCON_RESETRX | S5PV210_UFCON_RXTRIG8; -@@ -1351,7 +1351,7 @@ static int apple_s5l_serial_startup(struct uart_port *port) +@@ -1350,7 +1350,7 @@ static int apple_s5l_serial_startup(struct uart_port *port) enable_rx_pio(ourport); @@ -209,7 +209,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 /* Enable Rx Interrupt */ s3c24xx_set_bit(port, APPLE_S5L_UCON_RXTHRESH_ENA, S3C2410_UCON); -@@ -1626,7 +1626,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, +@@ -1625,7 +1625,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, ulcon |= S3C2410_LCON_PNONE; } @@ -218,7 +218,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 dev_dbg(port->dev, "setting ulcon to %08x, brddiv to %d, udivslot %08x\n", -@@ -1684,7 +1684,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, +@@ -1683,7 +1683,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port, if ((termios->c_cflag & CREAD) == 0) port->ignore_status_mask |= RXSTAT_DUMMY_READ; @@ -227,7 +227,7 @@ index 07fb8a9dac63..ee51a0368a55 100644 } static const char *s3c24xx_serial_type(struct uart_port *port) -@@ -2376,14 +2376,14 @@ s3c24xx_serial_console_write(struct console *co, const char *s, +@@ -2375,14 +2375,14 @@ s3c24xx_serial_console_write(struct console *co, const char *s, if (cons_uart->sysrq) locked = false; else if (oops_in_progress) @@ -246,5 +246,5 @@ index 07fb8a9dac63..ee51a0368a55 100644 /* Shouldn't be __init, as it can be instantiated from other module */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0080-serial-sb1250-duart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0080-serial-sb1250-duart-Use-port-lock-wrappers.patch index 24551468..2047b363 100644 --- a/buildroot-external/patches/linux/0080-serial-sb1250-duart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0080-serial-sb1250-duart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 628b4e3f91830141e702ec59d5d376eb1ad9eea8 Mon Sep 17 00:00:00 2001 +From a9a1289498cb842a55d57ede4ff1b2bd96b7a1b9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:11 +0206 -Subject: [PATCH 080/196] serial: sb1250-duart: Use port lock wrappers +Subject: [PATCH 080/198] serial: sb1250-duart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -86,5 +86,5 @@ index f3cd69346482..dbec29d9a6c3 100644 static int __init sbd_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0081-serial-sc16is7xx-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0081-serial-sc16is7xx-Use-port-lock-wrappers.patch index b556b8d8..dbcbb384 100644 --- a/buildroot-external/patches/linux/0081-serial-sc16is7xx-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0081-serial-sc16is7xx-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 2ec2be76520133c2703eb4997ac1215a8bdfb735 Mon Sep 17 00:00:00 2001 +From d303da34308c0d86ec48943f96a9f66d8e039e68 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:12 +0206 -Subject: [PATCH 081/196] serial: sc16is7xx: Use port lock wrappers +Subject: [PATCH 081/198] serial: sc16is7xx: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -60,5 +60,5 @@ index f75b8bceb8ca..2d7470457af4 100644 static void sc16is7xx_reconf_rs485(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0082-serial-tegra-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0082-serial-tegra-Use-port-lock-wrappers.patch index 891c8f59..1a75c8c5 100644 --- a/buildroot-external/patches/linux/0082-serial-tegra-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0082-serial-tegra-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From c2a7bbba0b8c5cbce14465ff6338fde4b1e52e2c Mon Sep 17 00:00:00 2001 +From 66442db9d3a607c2bdfd84ed1a331813f2dd026a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:13 +0206 -Subject: [PATCH 082/196] serial: tegra: Use port lock wrappers +Subject: [PATCH 082/198] serial: tegra: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -177,5 +177,5 @@ index d4ec943cb8e9..6d4006b41975 100644 static const char *tegra_uart_type(struct uart_port *u) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0083-serial-core-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0083-serial-core-Use-port-lock-wrappers.patch index 070487c0..cd19eb7c 100644 --- a/buildroot-external/patches/linux/0083-serial-core-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0083-serial-core-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 0e9950b3324b08df7d223472910fabbd0a661519 Mon Sep 17 00:00:00 2001 +From 1d1af26137b4e240e05f8da2a093bb74708411af Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:14 +0206 -Subject: [PATCH 083/196] serial: core: Use port lock wrappers +Subject: [PATCH 083/198] serial: core: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c -index 083ea4de48f9..fea8a8eca0c0 100644 +index 4c81210ad9b3..fc59ba702752 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -79,7 +79,7 @@ static inline void uart_port_deref(struct uart_port *uport) @@ -336,7 +336,7 @@ index 083ea4de48f9..fea8a8eca0c0 100644 tty_port_set_initialized(port, true); } else { /* -@@ -2618,11 +2618,11 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state, +@@ -2627,11 +2627,11 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state, * keep the DTR setting that is set in uart_set_options() * We probably don't need a spinlock around this, but */ @@ -351,7 +351,7 @@ index 083ea4de48f9..fea8a8eca0c0 100644 uart_rs485_config(port); diff --git a/drivers/tty/serial/serial_port.c b/drivers/tty/serial/serial_port.c -index 862423237007..88975a4df306 100644 +index 0b3cef3c323b..72b6f4f326e2 100644 --- a/drivers/tty/serial/serial_port.c +++ b/drivers/tty/serial/serial_port.c @@ -35,10 +35,10 @@ static int serial_port_runtime_resume(struct device *dev) @@ -368,5 +368,5 @@ index 862423237007..88975a4df306 100644 out: pm_runtime_mark_last_busy(dev); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0084-serial-mctrl_gpio-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0084-serial-mctrl_gpio-Use-port-lock-wrappers.patch index 03c30d05..38cad76f 100644 --- a/buildroot-external/patches/linux/0084-serial-mctrl_gpio-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0084-serial-mctrl_gpio-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From e95dcd064a7ecf11a88145697128827b6758169e Mon Sep 17 00:00:00 2001 +From 6c67e782fccb3ff27f786fe76a440707709ab23b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:15 +0206 -Subject: [PATCH 084/196] serial: mctrl_gpio: Use port lock wrappers +Subject: [PATCH 084/198] serial: mctrl_gpio: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -59,5 +59,5 @@ index 7d5aaa8d422b..e51ca593ab86 100644 return IRQ_HANDLED; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0085-serial-txx9-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0085-serial-txx9-Use-port-lock-wrappers.patch index 60bfc92c..67f69624 100644 --- a/buildroot-external/patches/linux/0085-serial-txx9-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0085-serial-txx9-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 918c8367f5c88ac4ea0ff1a156be9e4bcd74c2fd Mon Sep 17 00:00:00 2001 +From 8f48330aefb07e35529c2d31392935c3375d9074 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:16 +0206 -Subject: [PATCH 085/196] serial: txx9: Use port lock wrappers +Subject: [PATCH 085/198] serial: txx9: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -135,5 +135,5 @@ index be08fb6f749c..eaa980722455 100644 static void -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0086-serial-sh-sci-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0086-serial-sh-sci-Use-port-lock-wrappers.patch index 736e6b15..526069e9 100644 --- a/buildroot-external/patches/linux/0086-serial-sh-sci-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0086-serial-sh-sci-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From f510bfd2152db83a547548eff4b5103cd87e4c37 Mon Sep 17 00:00:00 2001 +From 00e0ec0aeb7f915808d1772bc479c823de21c2d8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:17 +0206 -Subject: [PATCH 086/196] serial: sh-sci: Use port lock wrappers +Subject: [PATCH 086/198] serial: sh-sci: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -303,5 +303,5 @@ index a560b729fa3b..84ab434c94ba 100644 static int serial_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0087-serial-sifive-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0087-serial-sifive-Use-port-lock-wrappers.patch index 721a9ab2..48b7f3f5 100644 --- a/buildroot-external/patches/linux/0087-serial-sifive-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0087-serial-sifive-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 775e19bba15cd37cab089d25a15e101403896537 Mon Sep 17 00:00:00 2001 +From 964adde6bb8848877f53d30a33ad1cabba18ee8f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:18 +0206 -Subject: [PATCH 087/196] serial: sifive: Use port lock wrappers +Subject: [PATCH 087/198] serial: sifive: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -103,5 +103,5 @@ index d195c5de52e7..b296e57a9dee 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0088-serial-sprd-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0088-serial-sprd-Use-port-lock-wrappers.patch index 9fe7617b..94a4c22f 100644 --- a/buildroot-external/patches/linux/0088-serial-sprd-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0088-serial-sprd-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 9947b04ede5ec32ab6ba7044096014001c8da5d5 Mon Sep 17 00:00:00 2001 +From 3b9ed6c95a036b76547ea9a369d0a353fd81b72e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:19 +0206 -Subject: [PATCH 088/196] serial: sprd: Use port lock wrappers +Subject: [PATCH 088/198] serial: sprd: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -163,5 +163,5 @@ index f328fa57231f..f257525f9299 100644 static int sprd_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0089-serial-st-asc-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0089-serial-st-asc-Use-port-lock-wrappers.patch index 9aef7e24..4e9e26ac 100644 --- a/buildroot-external/patches/linux/0089-serial-st-asc-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0089-serial-st-asc-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 85b7f9be5d14b5a6c8baac45488a13d8a4b5f1bc Mon Sep 17 00:00:00 2001 +From e52ba1ff3e44ce867023e6c23c97edfd8dbc3388 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:20 +0206 -Subject: [PATCH 089/196] serial: st-asc: Use port lock wrappers +Subject: [PATCH 089/198] serial: st-asc: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -111,5 +111,5 @@ index 92b9f6894006..a821f5d76a26 100644 static int asc_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0090-serial-stm32-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0090-serial-stm32-Use-port-lock-wrappers.patch index 51b71967..144c2b54 100644 --- a/buildroot-external/patches/linux/0090-serial-stm32-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0090-serial-stm32-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 359f0d1e6b006a6296c949598fc409321b89721e Mon Sep 17 00:00:00 2001 +From acbbd819705ab82602bbf45a18a584abb4d83efc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:21 +0206 -Subject: [PATCH 090/196] serial: stm32: Use port lock wrappers +Subject: [PATCH 090/198] serial: stm32: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -37,10 +37,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c -index b6f4f436a565..f0901bedcc28 100644 +index e5f933beb6c0..d8fe1ca75ac4 100644 --- a/drivers/tty/serial/stm32-usart.c +++ b/drivers/tty/serial/stm32-usart.c -@@ -533,7 +533,7 @@ static void stm32_usart_rx_dma_complete(void *arg) +@@ -535,7 +535,7 @@ static void stm32_usart_rx_dma_complete(void *arg) unsigned int size; unsigned long flags; @@ -49,7 +49,7 @@ index b6f4f436a565..f0901bedcc28 100644 size = stm32_usart_receive_chars(port, false); uart_unlock_and_check_sysrq_irqrestore(port, flags); if (size) -@@ -639,9 +639,9 @@ static void stm32_usart_tx_dma_complete(void *arg) +@@ -641,9 +641,9 @@ static void stm32_usart_tx_dma_complete(void *arg) stm32_usart_tx_dma_terminate(stm32port); /* Let's see if we have pending data to send */ @@ -61,7 +61,7 @@ index b6f4f436a565..f0901bedcc28 100644 } static void stm32_usart_tx_interrupt_enable(struct uart_port *port) -@@ -885,7 +885,7 @@ static irqreturn_t stm32_usart_interrupt(int irq, void *ptr) +@@ -887,7 +887,7 @@ static irqreturn_t stm32_usart_interrupt(int irq, void *ptr) if (!stm32_port->throttled) { if (((sr & USART_SR_RXNE) && !stm32_usart_rx_dma_started(stm32_port)) || ((sr & USART_SR_ERR_MASK) && stm32_usart_rx_dma_started(stm32_port))) { @@ -70,7 +70,7 @@ index b6f4f436a565..f0901bedcc28 100644 size = stm32_usart_receive_chars(port, false); uart_unlock_and_check_sysrq(port); if (size) -@@ -894,14 +894,14 @@ static irqreturn_t stm32_usart_interrupt(int irq, void *ptr) +@@ -896,14 +896,14 @@ static irqreturn_t stm32_usart_interrupt(int irq, void *ptr) } if ((sr & USART_SR_TXE) && !(stm32_port->tx_ch)) { @@ -88,7 +88,7 @@ index b6f4f436a565..f0901bedcc28 100644 size = stm32_usart_receive_chars(port, false); uart_unlock_and_check_sysrq(port); if (size) -@@ -989,7 +989,7 @@ static void stm32_usart_throttle(struct uart_port *port) +@@ -991,7 +991,7 @@ static void stm32_usart_throttle(struct uart_port *port) const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; unsigned long flags; @@ -97,7 +97,7 @@ index b6f4f436a565..f0901bedcc28 100644 /* * Pause DMA transfer, so the RX data gets queued into the FIFO. -@@ -1002,7 +1002,7 @@ static void stm32_usart_throttle(struct uart_port *port) +@@ -1004,7 +1004,7 @@ static void stm32_usart_throttle(struct uart_port *port) stm32_usart_clr_bits(port, ofs->cr3, stm32_port->cr3_irq); stm32_port->throttled = true; @@ -106,7 +106,7 @@ index b6f4f436a565..f0901bedcc28 100644 } /* Unthrottle the remote, the input buffer can now accept data. */ -@@ -1012,7 +1012,7 @@ static void stm32_usart_unthrottle(struct uart_port *port) +@@ -1014,7 +1014,7 @@ static void stm32_usart_unthrottle(struct uart_port *port) const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; unsigned long flags; @@ -115,7 +115,7 @@ index b6f4f436a565..f0901bedcc28 100644 stm32_usart_set_bits(port, ofs->cr1, stm32_port->cr1_irq); if (stm32_port->cr3_irq) stm32_usart_set_bits(port, ofs->cr3, stm32_port->cr3_irq); -@@ -1026,7 +1026,7 @@ static void stm32_usart_unthrottle(struct uart_port *port) +@@ -1028,7 +1028,7 @@ static void stm32_usart_unthrottle(struct uart_port *port) if (stm32_port->rx_ch) stm32_usart_rx_dma_start_or_resume(port); @@ -124,7 +124,7 @@ index b6f4f436a565..f0901bedcc28 100644 } /* Receive stop */ -@@ -1154,7 +1154,7 @@ static void stm32_usart_set_termios(struct uart_port *port, +@@ -1156,7 +1156,7 @@ static void stm32_usart_set_termios(struct uart_port *port, baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk / 8); @@ -133,7 +133,7 @@ index b6f4f436a565..f0901bedcc28 100644 ret = readl_relaxed_poll_timeout_atomic(port->membase + ofs->isr, isr, -@@ -1345,7 +1345,7 @@ static void stm32_usart_set_termios(struct uart_port *port, +@@ -1347,7 +1347,7 @@ static void stm32_usart_set_termios(struct uart_port *port, writel_relaxed(cr1, port->membase + ofs->cr1); stm32_usart_set_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit)); @@ -142,7 +142,7 @@ index b6f4f436a565..f0901bedcc28 100644 /* Handle modem control interrupts */ if (UART_ENABLE_MS(port, termios->c_cflag)) -@@ -1395,9 +1395,9 @@ static void stm32_usart_pm(struct uart_port *port, unsigned int state, +@@ -1397,9 +1397,9 @@ static void stm32_usart_pm(struct uart_port *port, unsigned int state, pm_runtime_get_sync(port->dev); break; case UART_PM_STATE_OFF: @@ -154,7 +154,7 @@ index b6f4f436a565..f0901bedcc28 100644 pm_runtime_put_sync(port->dev); break; } -@@ -1880,9 +1880,9 @@ static void stm32_usart_console_write(struct console *co, const char *s, +@@ -1882,9 +1882,9 @@ static void stm32_usart_console_write(struct console *co, const char *s, int locked = 1; if (oops_in_progress) @@ -166,7 +166,7 @@ index b6f4f436a565..f0901bedcc28 100644 /* Save and disable interrupts, enable the transmitter */ old_cr1 = readl_relaxed(port->membase + ofs->cr1); -@@ -1896,7 +1896,7 @@ static void stm32_usart_console_write(struct console *co, const char *s, +@@ -1898,7 +1898,7 @@ static void stm32_usart_console_write(struct console *co, const char *s, writel_relaxed(old_cr1, port->membase + ofs->cr1); if (locked) @@ -175,7 +175,7 @@ index b6f4f436a565..f0901bedcc28 100644 } static int stm32_usart_console_setup(struct console *co, char *options) -@@ -2031,7 +2031,7 @@ static int __maybe_unused stm32_usart_serial_en_wakeup(struct uart_port *port, +@@ -2033,7 +2033,7 @@ static int __maybe_unused stm32_usart_serial_en_wakeup(struct uart_port *port, * low-power mode. */ if (stm32_port->rx_ch) { @@ -185,5 +185,5 @@ index b6f4f436a565..f0901bedcc28 100644 if (!stm32_usart_rx_dma_pause(stm32_port)) size += stm32_usart_receive_chars(port, true); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0091-serial-sunhv-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0091-serial-sunhv-Use-port-lock-wrappers.patch index 6869100d..51307a5f 100644 --- a/buildroot-external/patches/linux/0091-serial-sunhv-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0091-serial-sunhv-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From b32120a6b6f52c62d9a1d8929cd5fd717306ef01 Mon Sep 17 00:00:00 2001 +From ac2136f55b70ee185bab436362a4fdac219baa04 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:22 +0206 -Subject: [PATCH 091/196] serial: sunhv: Use port lock wrappers +Subject: [PATCH 091/198] serial: sunhv: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -150,5 +150,5 @@ index c671d674bce4..5bfc0040f17b 100644 static struct console sunhv_console = { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0092-serial-sunplus-uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0092-serial-sunplus-uart-Use-port-lock-wrappers.patch index 7fd3bf55..f3e8491e 100644 --- a/buildroot-external/patches/linux/0092-serial-sunplus-uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0092-serial-sunplus-uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From ee1490b16afd2f4858a64fad528f82075f1da182 Mon Sep 17 00:00:00 2001 +From 1932ef3f8abb0d8bd225c3a4e1ee829c61fb9fdf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:23 +0206 -Subject: [PATCH 092/196] serial: sunplus-uart: Use port lock wrappers +Subject: [PATCH 092/198] serial: sunplus-uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -147,5 +147,5 @@ index 3aacd5eb414c..4251f4e1ba99 100644 local_irq_restore(flags); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0093-serial-sunsab-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0093-serial-sunsab-Use-port-lock-wrappers.patch index 66f369eb..b07d284d 100644 --- a/buildroot-external/patches/linux/0093-serial-sunsab-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0093-serial-sunsab-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From f187f2fe0b3045229a97ce77efd0d3c9824ef153 Mon Sep 17 00:00:00 2001 +From 278ee5a1d6e11f88fbd8dd7f08a722c3f0a48c6f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:24 +0206 -Subject: [PATCH 093/196] serial: sunsab: Use port lock wrappers +Subject: [PATCH 093/198] serial: sunsab: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -177,5 +177,5 @@ index 40eeaf835bba..6aa51a6f8063 100644 return 0; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0094-serial-sunsu-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0094-serial-sunsu-Use-port-lock-wrappers.patch index f11893a5..12657c50 100644 --- a/buildroot-external/patches/linux/0094-serial-sunsu-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0094-serial-sunsu-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 3dc65f31fdf6ccc15dd02e2956a276d591f3acc6 Mon Sep 17 00:00:00 2001 +From cd6e22436efc826fa3762bc274700b39a875fddc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:25 +0206 -Subject: [PATCH 094/196] serial: sunsu: Use port lock wrappers +Subject: [PATCH 094/198] serial: sunsu: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -220,5 +220,5 @@ index 58a4342ad0f9..1e051cc2591c 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0095-serial-sunzilog-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0095-serial-sunzilog-Use-port-lock-wrappers.patch index 8da1648b..bb7dcf28 100644 --- a/buildroot-external/patches/linux/0095-serial-sunzilog-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0095-serial-sunzilog-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 7c8bc5cc26ab2d530384d7548626ca02e6ec97ce Mon Sep 17 00:00:00 2001 +From dfe127ec04065029f71e9fb2d5699c0ffc7becc8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:26 +0206 -Subject: [PATCH 095/196] serial: sunzilog: Use port lock wrappers +Subject: [PATCH 095/198] serial: sunzilog: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -212,5 +212,5 @@ index c8c71c56264c..d3b5e864b727 100644 #ifdef CONFIG_SERIO if (up->flags & (SUNZILOG_FLAG_CONS_KEYB | -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0096-serial-timbuart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0096-serial-timbuart-Use-port-lock-wrappers.patch index 146f0bc7..f51d883e 100644 --- a/buildroot-external/patches/linux/0096-serial-timbuart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0096-serial-timbuart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From aad664874ddcaac93ae482c104079f38998c5c19 Mon Sep 17 00:00:00 2001 +From 35ec8c121ab7141518d95575b1ef75ca482d047b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:27 +0206 -Subject: [PATCH 096/196] serial: timbuart: Use port lock wrappers +Subject: [PATCH 096/198] serial: timbuart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -72,5 +72,5 @@ index 0859394a78cd..0cc6524f5e8b 100644 static const char *timbuart_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0097-serial-uartlite-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0097-serial-uartlite-Use-port-lock-wrappers.patch index b34fe622..23842f42 100644 --- a/buildroot-external/patches/linux/0097-serial-uartlite-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0097-serial-uartlite-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From ef2a7b964c311147671f8da0f1a029600f8feb11 Mon Sep 17 00:00:00 2001 +From 7a808ea1e0703a03b55b5739b7922bc9b6cbeb3d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:28 +0206 -Subject: [PATCH 097/196] serial: uartlite: Use port lock wrappers +Subject: [PATCH 097/198] serial: uartlite: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -106,5 +106,5 @@ index b225a78f6175..404c14acafa5 100644 static int ulite_console_setup(struct console *co, char *options) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0098-serial-ucc_uart-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0098-serial-ucc_uart-Use-port-lock-wrappers.patch index 3098198d..d9045186 100644 --- a/buildroot-external/patches/linux/0098-serial-ucc_uart-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0098-serial-ucc_uart-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 98036540f2e54a9bfa0bd4972c6f805d4a335f61 Mon Sep 17 00:00:00 2001 +From 00ca77f607a9224ac37e75575951dfa433161901 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:29 +0206 -Subject: [PATCH 098/196] serial: ucc_uart: Use port lock wrappers +Subject: [PATCH 098/198] serial: ucc_uart: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -60,5 +60,5 @@ index b06661b80f41..ed7a6bb5596a 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0099-serial-vt8500-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0099-serial-vt8500-Use-port-lock-wrappers.patch index f2766b12..c102219d 100644 --- a/buildroot-external/patches/linux/0099-serial-vt8500-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0099-serial-vt8500-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 31d33200a08db8ea81131f9fd58cf814f01eec2c Mon Sep 17 00:00:00 2001 +From ed755976f5f993259afe0324c9eea1ea586acad7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:30 +0206 -Subject: [PATCH 099/196] serial: vt8500: Use port lock wrappers +Subject: [PATCH 099/198] serial: vt8500: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -77,5 +77,5 @@ index c5d5c2765119..78a1c1eea11b 100644 static const char *vt8500_type(struct uart_port *port) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0100-serial-xilinx_uartps-Use-port-lock-wrappers.patch b/buildroot-external/patches/linux/0100-serial-xilinx_uartps-Use-port-lock-wrappers.patch index 797fefc5..4b95fd08 100644 --- a/buildroot-external/patches/linux/0100-serial-xilinx_uartps-Use-port-lock-wrappers.patch +++ b/buildroot-external/patches/linux/0100-serial-xilinx_uartps-Use-port-lock-wrappers.patch @@ -1,7 +1,7 @@ -From 3d50225857afa57a9507e16afe8a901b8fcaac87 Mon Sep 17 00:00:00 2001 +From d7a5565efe5e9e2df5bd06ac90d3edbfc4357c1b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Sep 2023 20:44:31 +0206 -Subject: [PATCH 100/196] serial: xilinx_uartps: Use port lock wrappers +Subject: [PATCH 100/198] serial: xilinx_uartps: Use port lock wrappers When a serial port is used for kernel console output, then all modifications to the UART registers which are done from other contexts, @@ -277,5 +277,5 @@ index 2e5e86a00a77..9c13dac1d4d1 100644 return uart_resume_port(cdns_uart->cdns_uart_driver, port); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0101-printk-Add-non-BKL-nbcon-console-basic-infrastructur.patch b/buildroot-external/patches/linux/0101-printk-Add-non-BKL-nbcon-console-basic-infrastructur.patch index 212535a6..8b33ea82 100644 --- a/buildroot-external/patches/linux/0101-printk-Add-non-BKL-nbcon-console-basic-infrastructur.patch +++ b/buildroot-external/patches/linux/0101-printk-Add-non-BKL-nbcon-console-basic-infrastructur.patch @@ -1,7 +1,7 @@ -From 722b7cde90957a6094cdd7a82dbac94a1fec5194 Mon Sep 17 00:00:00 2001 +From 4d72508b6543fa21b2ab307bb09a7cbfdc188c3f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:00 +0206 -Subject: [PATCH 101/196] printk: Add non-BKL (nbcon) console basic +Subject: [PATCH 101/198] printk: Add non-BKL (nbcon) console basic infrastructure The current console/printk subsystem is protected by a Big Kernel Lock, @@ -232,10 +232,10 @@ index 000000000000..63d24ca62ac5 + nbcon_state_set(con, &state); +} diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 0b3af1529778..1ec06dfa29d3 100644 +index 35d32d66fb11..ebeb0b4fa682 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3326,9 +3326,10 @@ static void try_enable_default_console(struct console *newcon) +@@ -3376,9 +3376,10 @@ static void try_enable_default_console(struct console *newcon) newcon->flags |= CON_CONSDEV; } @@ -249,7 +249,7 @@ index 0b3af1529778..1ec06dfa29d3 100644 con->name, con->index, ##__VA_ARGS__) static void console_init_seq(struct console *newcon, bool bootcon_registered) -@@ -3488,6 +3489,9 @@ void register_console(struct console *newcon) +@@ -3538,6 +3539,9 @@ void register_console(struct console *newcon) newcon->dropped = 0; console_init_seq(newcon, bootcon_registered); @@ -259,7 +259,7 @@ index 0b3af1529778..1ec06dfa29d3 100644 /* * Put this console in the list - keep the * preferred driver at the head of the list. -@@ -3579,6 +3583,9 @@ static int unregister_console_locked(struct console *console) +@@ -3629,6 +3633,9 @@ static int unregister_console_locked(struct console *console) */ synchronize_srcu(&console_srcu); @@ -270,5 +270,5 @@ index 0b3af1529778..1ec06dfa29d3 100644 if (console->exit) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0102-printk-nbcon-Add-acquire-release-logic.patch b/buildroot-external/patches/linux/0102-printk-nbcon-Add-acquire-release-logic.patch index af033f2e..7f9d47fc 100644 --- a/buildroot-external/patches/linux/0102-printk-nbcon-Add-acquire-release-logic.patch +++ b/buildroot-external/patches/linux/0102-printk-nbcon-Add-acquire-release-logic.patch @@ -1,7 +1,7 @@ -From 4f3f47e5e19d40bd84ca1a1e2b93822e2d94362c Mon Sep 17 00:00:00 2001 +From cfc64e8039fd294ed97037945850a6c0ecdb6a23 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:01 +0206 -Subject: [PATCH 102/196] printk: nbcon: Add acquire/release logic +Subject: [PATCH 102/198] printk: nbcon: Add acquire/release logic Add per console acquire/release functionality. @@ -708,5 +708,5 @@ index 63d24ca62ac5..a2a354f859f9 100644 * nbcon_init - Initialize the nbcon console specific data * @con: Console to initialize -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0103-printk-Make-static-printk-buffers-available-to-nbcon.patch b/buildroot-external/patches/linux/0103-printk-Make-static-printk-buffers-available-to-nbcon.patch index 64b2ddb4..9334e209 100644 --- a/buildroot-external/patches/linux/0103-printk-Make-static-printk-buffers-available-to-nbcon.patch +++ b/buildroot-external/patches/linux/0103-printk-Make-static-printk-buffers-available-to-nbcon.patch @@ -1,7 +1,7 @@ -From c40a030d4055ff223b62a48d97c33995662d5d36 Mon Sep 17 00:00:00 2001 +From 7399878c45c91bbe9a7f3274e35f60a612f52b95 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Sat, 16 Sep 2023 21:26:02 +0206 -Subject: [PATCH 103/196] printk: Make static printk buffers available to nbcon +Subject: [PATCH 103/198] printk: Make static printk buffers available to nbcon The nbcon boot consoles also need printk buffers that are available very early. Since the nbcon boot consoles will also be serialized @@ -35,10 +35,10 @@ index 2ca0ab78802c..7199d60bfc25 100644 * struct printk_buffers - Buffers to read/format/output printk messages. * @outbuf: After formatting, contains text to output. diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1ec06dfa29d3..eff5036c82c0 100644 +index ebeb0b4fa682..3bb689b6ae19 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2846,6 +2846,13 @@ static bool printk_get_next_message(struct printk_message *pmsg, u64 seq, +@@ -2881,6 +2881,13 @@ static bool printk_get_next_message(struct printk_message *pmsg, u64 seq, return true; } @@ -52,7 +52,7 @@ index 1ec06dfa29d3..eff5036c82c0 100644 /* * Print one record for the given console. The record printed is whatever * record is the next available record for the given console. -@@ -2863,12 +2870,10 @@ static bool printk_get_next_message(struct printk_message *pmsg, u64 seq, +@@ -2898,12 +2905,10 @@ static bool printk_get_next_message(struct printk_message *pmsg, u64 seq, */ static bool console_emit_next_record(struct console *con, bool *handover, int cookie) { @@ -68,5 +68,5 @@ index 1ec06dfa29d3..eff5036c82c0 100644 unsigned long flags; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0104-printk-nbcon-Add-buffer-management.patch b/buildroot-external/patches/linux/0104-printk-nbcon-Add-buffer-management.patch index b6582f67..4a8fa512 100644 --- a/buildroot-external/patches/linux/0104-printk-nbcon-Add-buffer-management.patch +++ b/buildroot-external/patches/linux/0104-printk-nbcon-Add-buffer-management.patch @@ -1,7 +1,7 @@ -From 0bf91edda99d29abc55c6fa18dc19a610611e549 Mon Sep 17 00:00:00 2001 +From eea34fa9a5e6e5ef9b0c2df58e6102128f978177 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:03 +0206 -Subject: [PATCH 104/196] printk: nbcon: Add buffer management +Subject: [PATCH 104/198] printk: nbcon: Add buffer management In case of hostile takeovers it must be ensured that the previous owner cannot scribble over the output buffer of the emergency/panic @@ -263,10 +263,10 @@ index a2a354f859f9..ba1febf15db6 100644 + con->pbufs = NULL; } diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index eff5036c82c0..51be6b65c3cf 100644 +index 3bb689b6ae19..edb0f9737bb9 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3331,12 +3331,6 @@ static void try_enable_default_console(struct console *newcon) +@@ -3381,12 +3381,6 @@ static void try_enable_default_console(struct console *newcon) newcon->flags |= CON_CONSDEV; } @@ -279,7 +279,7 @@ index eff5036c82c0..51be6b65c3cf 100644 static void console_init_seq(struct console *newcon, bool bootcon_registered) { struct console *con; -@@ -3450,6 +3444,15 @@ void register_console(struct console *newcon) +@@ -3500,6 +3494,15 @@ void register_console(struct console *newcon) goto unlock; } @@ -295,7 +295,7 @@ index eff5036c82c0..51be6b65c3cf 100644 /* * See if we want to enable this console driver by default. * -@@ -3477,8 +3480,11 @@ void register_console(struct console *newcon) +@@ -3527,8 +3530,11 @@ void register_console(struct console *newcon) err = try_enable_preferred_console(newcon, false); /* printk() messages are not printed to the Braille console. */ @@ -308,7 +308,7 @@ index eff5036c82c0..51be6b65c3cf 100644 /* * If we have a bootconsole, and are switching to a real console, -@@ -3589,7 +3595,7 @@ static int unregister_console_locked(struct console *console) +@@ -3639,7 +3645,7 @@ static int unregister_console_locked(struct console *console) synchronize_srcu(&console_srcu); if (console->flags & CON_NBCON) @@ -318,5 +318,5 @@ index eff5036c82c0..51be6b65c3cf 100644 console_sysfs_notify(); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0105-printk-nbcon-Add-ownership-state-functions.patch b/buildroot-external/patches/linux/0105-printk-nbcon-Add-ownership-state-functions.patch index 624a9edc..eb6e2d2c 100644 --- a/buildroot-external/patches/linux/0105-printk-nbcon-Add-ownership-state-functions.patch +++ b/buildroot-external/patches/linux/0105-printk-nbcon-Add-ownership-state-functions.patch @@ -1,7 +1,7 @@ -From 18f88aa629f0435318eb030df44ee399087ad4c0 Mon Sep 17 00:00:00 2001 +From 75beed52c30beb783c633d8c9bf3b2577acda22e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:04 +0206 -Subject: [PATCH 105/196] printk: nbcon: Add ownership state functions +Subject: [PATCH 105/198] printk: nbcon: Add ownership state functions Provide functions that are related to the safe handover mechanism and allow console drivers to dynamically specify unsafe regions: @@ -180,5 +180,5 @@ index ba1febf15db6..98e4be5429f0 100644 * nbcon_alloc - Allocate buffers needed by the nbcon console * @con: Console to allocate buffers for -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0106-printk-nbcon-Add-sequence-handling.patch b/buildroot-external/patches/linux/0106-printk-nbcon-Add-sequence-handling.patch index 958abd8e..f188a847 100644 --- a/buildroot-external/patches/linux/0106-printk-nbcon-Add-sequence-handling.patch +++ b/buildroot-external/patches/linux/0106-printk-nbcon-Add-sequence-handling.patch @@ -1,7 +1,7 @@ -From 0ad5d91c28fd1d1007d0337eef381e1e4a685130 Mon Sep 17 00:00:00 2001 +From 28fac1ea3b9ecdcc1db264094f47ba6a20ed21e9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:05 +0206 -Subject: [PATCH 106/196] printk: nbcon: Add sequence handling +Subject: [PATCH 106/198] printk: nbcon: Add sequence handling Add an atomic_long_t field @nbcon_seq to the console struct to store the sequence number for nbcon consoles. For nbcon consoles @@ -241,7 +241,7 @@ index 98e4be5429f0..e076096b31c0 100644 } diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 51be6b65c3cf..de54e4942aa5 100644 +index edb0f9737bb9..1eec8c065090 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -494,7 +494,7 @@ _DEFINE_PRINTKRB(printk_rb_static, CONFIG_LOG_BUF_SHIFT - PRB_AVGBITS, @@ -253,7 +253,7 @@ index 51be6b65c3cf..de54e4942aa5 100644 /* * We cannot access per-CPU data (e.g. per-CPU flush irq_work) before -@@ -3168,6 +3168,7 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -3203,6 +3203,7 @@ void console_flush_on_panic(enum con_flush_mode mode) if (mode == CONSOLE_REPLAY_ALL) { struct console *c; @@ -261,7 +261,7 @@ index 51be6b65c3cf..de54e4942aa5 100644 int cookie; u64 seq; -@@ -3175,11 +3176,17 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -3210,11 +3211,17 @@ void console_flush_on_panic(enum con_flush_mode mode) cookie = console_srcu_read_lock(); for_each_console_srcu(c) { @@ -284,7 +284,7 @@ index 51be6b65c3cf..de54e4942aa5 100644 } console_srcu_read_unlock(cookie); } -@@ -3750,6 +3757,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3800,6 +3807,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre struct console *c; u64 last_diff = 0; u64 printk_seq; @@ -292,7 +292,7 @@ index 51be6b65c3cf..de54e4942aa5 100644 int cookie; u64 diff; u64 seq; -@@ -3777,6 +3785,9 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3827,6 +3835,9 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre for_each_console_srcu(c) { if (con && con != c) continue; @@ -302,7 +302,7 @@ index 51be6b65c3cf..de54e4942aa5 100644 /* * If consoles are not usable, it cannot be expected * that they make forward progress, so only increment -@@ -3784,7 +3795,13 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3834,7 +3845,13 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre */ if (!console_is_usable(c)) continue; @@ -318,5 +318,5 @@ index 51be6b65c3cf..de54e4942aa5 100644 diff += seq - printk_seq; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0107-printk-nbcon-Add-emit-function-and-callback-function.patch b/buildroot-external/patches/linux/0107-printk-nbcon-Add-emit-function-and-callback-function.patch index 6d30ef0d..0d28fa3a 100644 --- a/buildroot-external/patches/linux/0107-printk-nbcon-Add-emit-function-and-callback-function.patch +++ b/buildroot-external/patches/linux/0107-printk-nbcon-Add-emit-function-and-callback-function.patch @@ -1,7 +1,7 @@ -From a033e17e680e1b1d1a481997cb948dd55c0f0fb2 Mon Sep 17 00:00:00 2001 +From 3ed6e3169b7533adb444e3116b44094b9c00326e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:06 +0206 -Subject: [PATCH 107/196] printk: nbcon: Add emit function and callback +Subject: [PATCH 107/198] printk: nbcon: Add emit function and callback function for atomic printing Implement an emit function for nbcon consoles to output printk @@ -234,7 +234,7 @@ index e076096b31c0..6e05d263fd22 100644 * nbcon_alloc - Allocate buffers needed by the nbcon console * @con: Console to allocate buffers for diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index de54e4942aa5..1638eaf3708a 100644 +index 1eec8c065090..a8565bd0ac18 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -698,9 +698,6 @@ static ssize_t msg_print_ext_body(char *buf, size_t size, @@ -247,7 +247,7 @@ index de54e4942aa5..1638eaf3708a 100644 /* /dev/kmsg - userspace message inject/listen interface */ struct devkmsg_user { atomic64_t seq; -@@ -2733,7 +2730,7 @@ static void __console_unlock(void) +@@ -2768,7 +2765,7 @@ static void __console_unlock(void) * If @pmsg->pbufs->outbuf is modified, @pmsg->outbuf_len is updated. */ #ifdef CONFIG_PRINTK @@ -256,7 +256,7 @@ index de54e4942aa5..1638eaf3708a 100644 { struct printk_buffers *pbufs = pmsg->pbufs; const size_t scratchbuf_sz = sizeof(pbufs->scratchbuf); -@@ -2787,8 +2784,8 @@ static void console_prepend_dropped(struct printk_message *pmsg, unsigned long d +@@ -2822,8 +2819,8 @@ static void console_prepend_dropped(struct printk_message *pmsg, unsigned long d * of @pmsg are valid. (See the documentation of struct printk_message * for information about the @pmsg fields.) */ @@ -268,5 +268,5 @@ index de54e4942aa5..1638eaf3708a 100644 static int panic_console_dropped; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0108-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch b/buildroot-external/patches/linux/0108-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch index 9dc77ddc..04b143b9 100644 --- a/buildroot-external/patches/linux/0108-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch +++ b/buildroot-external/patches/linux/0108-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch @@ -1,7 +1,7 @@ -From f7619f0c2f9fdc0bf7f1d8a710f43443e41487c8 Mon Sep 17 00:00:00 2001 +From 2f5d0c4c883ae3ccc57ab9991f6787a941e9f751 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 16 Sep 2023 21:26:07 +0206 -Subject: [PATCH 108/196] printk: nbcon: Allow drivers to mark unsafe regions +Subject: [PATCH 108/198] printk: nbcon: Allow drivers to mark unsafe regions and check state For the write_atomic callback, the console driver may have unsafe @@ -139,5 +139,5 @@ index 6e05d263fd22..b96077152f49 100644 * nbcon_emit_next_record - Emit a record in the acquired context * @wctxt: The write context that will be handed to the write function -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0109-printk-fix-illegal-pbufs-access-for-CONFIG_PRINTK.patch b/buildroot-external/patches/linux/0109-printk-fix-illegal-pbufs-access-for-CONFIG_PRINTK.patch index 8e5f85eb..8392d28a 100644 --- a/buildroot-external/patches/linux/0109-printk-fix-illegal-pbufs-access-for-CONFIG_PRINTK.patch +++ b/buildroot-external/patches/linux/0109-printk-fix-illegal-pbufs-access-for-CONFIG_PRINTK.patch @@ -1,7 +1,7 @@ -From ac5046cbcf4a6e51be9f326cd814789a5ca9959d Mon Sep 17 00:00:00 2001 +From 1778c80d0ce0b97fb7142d1e23f5e499c713a76e Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 20 Sep 2023 17:58:38 +0206 -Subject: [PATCH 109/196] printk: fix illegal pbufs access for !CONFIG_PRINTK +Subject: [PATCH 109/198] printk: fix illegal pbufs access for !CONFIG_PRINTK When CONFIG_PRINTK is not set, PRINTK_MESSAGE_MAX is 0. This leads to a zero-sized array @outbuf in @printk_shared_pbufs. In @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1638eaf3708a..e922523fec78 100644 +index a8565bd0ac18..7ee5216fe61a 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -102,12 +102,6 @@ DEFINE_STATIC_SRCU(console_srcu); @@ -67,7 +67,7 @@ index 1638eaf3708a..e922523fec78 100644 DECLARE_WAIT_QUEUE_HEAD(log_wait); /* All 3 protected by @syslog_lock. */ /* the next printk record to read by syslog(READ) or /proc/kmsg */ -@@ -2346,22 +2346,6 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -2381,22 +2381,6 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre static u64 syslog_seq; @@ -90,7 +90,7 @@ index 1638eaf3708a..e922523fec78 100644 static bool pr_flush(int timeout_ms, bool reset_on_progress) { return true; } static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progress) { return true; } -@@ -2715,6 +2699,8 @@ static void __console_unlock(void) +@@ -2750,6 +2734,8 @@ static void __console_unlock(void) up_console_sem(); } @@ -99,7 +99,7 @@ index 1638eaf3708a..e922523fec78 100644 /* * Prepend the message in @pmsg->pbufs->outbuf with a "dropped message". This * is achieved by shifting the existing message over and inserting the dropped -@@ -2729,7 +2715,6 @@ static void __console_unlock(void) +@@ -2764,7 +2750,6 @@ static void __console_unlock(void) * * If @pmsg->pbufs->outbuf is modified, @pmsg->outbuf_len is updated. */ @@ -107,7 +107,7 @@ index 1638eaf3708a..e922523fec78 100644 void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped) { struct printk_buffers *pbufs = pmsg->pbufs; -@@ -2761,9 +2746,6 @@ void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped) +@@ -2796,9 +2781,6 @@ void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped) memcpy(outbuf, scratchbuf, len); pmsg->outbuf_len += len; } @@ -117,7 +117,7 @@ index 1638eaf3708a..e922523fec78 100644 /* * Read and format the specified record (or a later record if the specified -@@ -2921,6 +2903,16 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co +@@ -2956,6 +2938,16 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co return true; } @@ -135,5 +135,5 @@ index 1638eaf3708a..e922523fec78 100644 * Print out all remaining records to all consoles. * -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0110-printk-Reduce-pr_flush-pooling-time.patch b/buildroot-external/patches/linux/0110-printk-Reduce-pr_flush-pooling-time.patch index 52acca18..cd02d54c 100644 --- a/buildroot-external/patches/linux/0110-printk-Reduce-pr_flush-pooling-time.patch +++ b/buildroot-external/patches/linux/0110-printk-Reduce-pr_flush-pooling-time.patch @@ -1,7 +1,7 @@ -From 245e39efef1a82639a16598af4216a9c60f91e9f Mon Sep 17 00:00:00 2001 +From 1d2a03eb0aa2ed5df8591651c8092031be48307d Mon Sep 17 00:00:00 2001 From: Petr Mladek Date: Fri, 6 Oct 2023 10:21:51 +0200 -Subject: [PATCH 110/196] printk: Reduce pr_flush() pooling time +Subject: [PATCH 110/198] printk: Reduce pr_flush() pooling time pr_flush() does not guarantee that all messages would really get flushed to the console. The best it could do is to wait with a given timeout.[*] @@ -46,10 +46,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index e922523fec78..26a76b167ea6 100644 +index 7ee5216fe61a..6c6241c89e24 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3742,7 +3742,8 @@ late_initcall(printk_late_init); +@@ -3792,7 +3792,8 @@ late_initcall(printk_late_init); /* If @con is specified, only wait for that console. Otherwise wait for all. */ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progress) { @@ -59,7 +59,7 @@ index e922523fec78..26a76b167ea6 100644 struct console *c; u64 last_diff = 0; u64 printk_seq; -@@ -3760,6 +3761,9 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3810,6 +3811,9 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre console_unlock(); for (;;) { @@ -69,7 +69,7 @@ index e922523fec78..26a76b167ea6 100644 diff = 0; /* -@@ -3797,24 +3801,20 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3847,24 +3851,20 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre console_srcu_read_unlock(cookie); if (diff != last_diff && reset_on_progress) @@ -103,5 +103,5 @@ index e922523fec78..26a76b167ea6 100644 last_diff = diff; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0111-printk-nbcon-Relocate-32bit-seq-macros.patch b/buildroot-external/patches/linux/0111-printk-nbcon-Relocate-32bit-seq-macros.patch index f9461621..0f2a4970 100644 --- a/buildroot-external/patches/linux/0111-printk-nbcon-Relocate-32bit-seq-macros.patch +++ b/buildroot-external/patches/linux/0111-printk-nbcon-Relocate-32bit-seq-macros.patch @@ -1,7 +1,7 @@ -From 87f305af1157ce37e29540b92aae57daaff32e8d Mon Sep 17 00:00:00 2001 +From e55641cf1214f2888a8676c3d0f74a17c080a8bf Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 6 Dec 2023 12:01:56 +0000 -Subject: [PATCH 111/196] printk: nbcon: Relocate 32bit seq macros +Subject: [PATCH 111/198] printk: nbcon: Relocate 32bit seq macros The macros __seq_to_nbcon_seq() and __nbcon_seq_to_seq() are used to provide support for atomic handling of sequence numbers @@ -144,5 +144,5 @@ index 18cd25e489b8..b82a96dc2ea2 100644 + #endif /* _KERNEL_PRINTK_RINGBUFFER_H */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0112-printk-Adjust-mapping-for-32bit-seq-macros.patch b/buildroot-external/patches/linux/0112-printk-Adjust-mapping-for-32bit-seq-macros.patch index 0240cdcc..26faf127 100644 --- a/buildroot-external/patches/linux/0112-printk-Adjust-mapping-for-32bit-seq-macros.patch +++ b/buildroot-external/patches/linux/0112-printk-Adjust-mapping-for-32bit-seq-macros.patch @@ -1,7 +1,7 @@ -From a4d45e4dce8b5eccfdc372dec99b037447369ea8 Mon Sep 17 00:00:00 2001 +From 3fcd8258460134ae4a79cbb24a39efeeecef6206 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Dec 2023 14:15:15 +0000 -Subject: [PATCH 112/196] printk: Adjust mapping for 32bit seq macros +Subject: [PATCH 112/198] printk: Adjust mapping for 32bit seq macros Note: This change only applies to 32bit architectures. On 64bit architectures the macros are NOPs. @@ -72,5 +72,5 @@ index b82a96dc2ea2..12f60c782e46 100644 return seq; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0113-printk-Use-prb_first_seq-as-base-for-32bit-seq-macro.patch b/buildroot-external/patches/linux/0113-printk-Use-prb_first_seq-as-base-for-32bit-seq-macro.patch index b3966561..f20b84f2 100644 --- a/buildroot-external/patches/linux/0113-printk-Use-prb_first_seq-as-base-for-32bit-seq-macro.patch +++ b/buildroot-external/patches/linux/0113-printk-Use-prb_first_seq-as-base-for-32bit-seq-macro.patch @@ -1,7 +1,7 @@ -From e58793dbb1847b2a8f98d2a0f3016e4f3cd3356d Mon Sep 17 00:00:00 2001 +From fcfa743b20e41c8a1cef0612900f0f1677f8a87b Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 22 Nov 2023 16:13:37 +0000 -Subject: [PATCH 113/196] printk: Use prb_first_seq() as base for 32bit seq +Subject: [PATCH 113/198] printk: Use prb_first_seq() as base for 32bit seq macros Note: This change only applies to 32bit architectures. On 64bit @@ -74,5 +74,5 @@ index 12f60c782e46..ee294aaf4aeb 100644 return seq; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0114-printk-ringbuffer-Do-not-skip-non-finalized-records-.patch b/buildroot-external/patches/linux/0114-printk-ringbuffer-Do-not-skip-non-finalized-records-.patch index b8e1b3eb..cb5d9f4e 100644 --- a/buildroot-external/patches/linux/0114-printk-ringbuffer-Do-not-skip-non-finalized-records-.patch +++ b/buildroot-external/patches/linux/0114-printk-ringbuffer-Do-not-skip-non-finalized-records-.patch @@ -1,7 +1,7 @@ -From 6cfbf753a90d8212ebc60a139da50bdff07a6865 Mon Sep 17 00:00:00 2001 +From bc9d899cfe17946362bdf24ae8e21442615fb976 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 19 Oct 2023 10:32:05 +0000 -Subject: [PATCH 114/196] printk: ringbuffer: Do not skip non-finalized records +Subject: [PATCH 114/198] printk: ringbuffer: Do not skip non-finalized records with prb_next_seq() Commit f244b4dc53e5 ("printk: ringbuffer: Improve @@ -308,5 +308,5 @@ index ee294aaf4aeb..2d948cc82b5b 100644 .text_data_ring = { \ .size_bits = (avgtextbits) + (descbits), \ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0115-printk-ringbuffer-Clarify-special-lpos-values.patch b/buildroot-external/patches/linux/0115-printk-ringbuffer-Clarify-special-lpos-values.patch index 405959b9..8397414b 100644 --- a/buildroot-external/patches/linux/0115-printk-ringbuffer-Clarify-special-lpos-values.patch +++ b/buildroot-external/patches/linux/0115-printk-ringbuffer-Clarify-special-lpos-values.patch @@ -1,7 +1,7 @@ -From 2ac19d39dfc717ba79c617373d7710d12ff86802 Mon Sep 17 00:00:00 2001 +From 70596fc48fbc159ec34ce9339df56ad352e09273 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 23 Oct 2023 11:11:05 +0000 -Subject: [PATCH 115/196] printk: ringbuffer: Clarify special lpos values +Subject: [PATCH 115/198] printk: ringbuffer: Clarify special lpos values For empty line records, no data blocks are created. Instead, these valid records are identified by special logical position @@ -95,5 +95,5 @@ index 2d948cc82b5b..d49460f7578e 100644 #define FAILED_BLK_LPOS \ { \ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0116-printk-For-suppress_panic_printk-check-for-other-CPU.patch b/buildroot-external/patches/linux/0116-printk-For-suppress_panic_printk-check-for-other-CPU.patch index 13aa107e..edfb8f3e 100644 --- a/buildroot-external/patches/linux/0116-printk-For-suppress_panic_printk-check-for-other-CPU.patch +++ b/buildroot-external/patches/linux/0116-printk-For-suppress_panic_printk-check-for-other-CPU.patch @@ -1,7 +1,7 @@ -From ff37f2b813bcf577e3a570951a5d1471cceafbe7 Mon Sep 17 00:00:00 2001 +From 6c301935637e209e6ddb5dab7bb5d40b63bea9db Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 13 Oct 2023 20:13:02 +0000 -Subject: [PATCH 116/196] printk: For @suppress_panic_printk check for other +Subject: [PATCH 116/198] printk: For @suppress_panic_printk check for other CPU in panic Currently @suppress_panic_printk is checked along with @@ -21,10 +21,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 26a76b167ea6..f9911a6526b7 100644 +index 6c6241c89e24..a30338aca084 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2271,8 +2271,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2306,8 +2306,7 @@ asmlinkage int vprintk_emit(int facility, int level, if (unlikely(suppress_printk)) return 0; @@ -35,5 +35,5 @@ index 26a76b167ea6..f9911a6526b7 100644 if (level == LOGLEVEL_SCHED) { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0117-printk-Add-this_cpu_in_panic.patch b/buildroot-external/patches/linux/0117-printk-Add-this_cpu_in_panic.patch index 29eb2651..6ddc1736 100644 --- a/buildroot-external/patches/linux/0117-printk-Add-this_cpu_in_panic.patch +++ b/buildroot-external/patches/linux/0117-printk-Add-this_cpu_in_panic.patch @@ -1,7 +1,7 @@ -From eef338536ac3d1ecc8b9976aa4c23acc26ddcb9e Mon Sep 17 00:00:00 2001 +From 9a02d5fda6287d943fc2d58cd1a3dc768d0c4e56 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 13 Oct 2023 14:30:49 +0000 -Subject: [PATCH 117/196] printk: Add this_cpu_in_panic() +Subject: [PATCH 117/198] printk: Add this_cpu_in_panic() There is already panic_in_progress() and other_cpu_in_panic(), but checking if the current CPU is the panic CPU must still be @@ -30,7 +30,7 @@ index 6c2afee5ef62..ac2d9750e5f8 100644 bool is_extended, bool may_supress); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index f9911a6526b7..53aa496cce91 100644 +index a30338aca084..2bb393009d4e 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -347,6 +347,29 @@ static bool panic_in_progress(void) @@ -63,7 +63,7 @@ index f9911a6526b7..53aa496cce91 100644 /* * This is used for debugging the mess that is the VT code by * keeping track if we have the console semaphore held. It's -@@ -2593,26 +2616,6 @@ static int console_cpu_notify(unsigned int cpu) +@@ -2628,26 +2651,6 @@ static int console_cpu_notify(unsigned int cpu) return 0; } @@ -91,5 +91,5 @@ index f9911a6526b7..53aa496cce91 100644 * console_lock - block the console subsystem from printing * -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0118-printk-ringbuffer-Cleanup-reader-terminology.patch b/buildroot-external/patches/linux/0118-printk-ringbuffer-Cleanup-reader-terminology.patch index b9ed4d9c..6499f164 100644 --- a/buildroot-external/patches/linux/0118-printk-ringbuffer-Cleanup-reader-terminology.patch +++ b/buildroot-external/patches/linux/0118-printk-ringbuffer-Cleanup-reader-terminology.patch @@ -1,7 +1,7 @@ -From e69a87b9db7040f72eb3778cab817be8cdeedfdf Mon Sep 17 00:00:00 2001 +From cb0502082b6cfebf7aa64c7055426c6623206489 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 6 Nov 2023 15:01:58 +0000 -Subject: [PATCH 118/196] printk: ringbuffer: Cleanup reader terminology +Subject: [PATCH 118/198] printk: ringbuffer: Cleanup reader terminology With the lockless ringbuffer, it is allowed that multiple CPUs/contexts write simultaneously into the buffer. This creates @@ -68,5 +68,5 @@ index 244d991ffd73..67ee1c62fcd6 100644 bool prb_read_valid_info(struct printk_ringbuffer *rb, u64 seq, struct printk_info *info, unsigned int *line_count) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0119-printk-Wait-for-all-reserved-records-with-pr_flush.patch b/buildroot-external/patches/linux/0119-printk-Wait-for-all-reserved-records-with-pr_flush.patch index 3e876e02..6a93a7fd 100644 --- a/buildroot-external/patches/linux/0119-printk-Wait-for-all-reserved-records-with-pr_flush.patch +++ b/buildroot-external/patches/linux/0119-printk-Wait-for-all-reserved-records-with-pr_flush.patch @@ -1,7 +1,7 @@ -From c10f1a40ece57be7eaa32266c41b354ad1a6a5f9 Mon Sep 17 00:00:00 2001 +From 46c6d072f618fc70fb1e629ab3acfe7e06dcb8b4 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 6 Nov 2023 14:59:55 +0000 -Subject: [PATCH 119/196] printk: Wait for all reserved records with pr_flush() +Subject: [PATCH 119/198] printk: Wait for all reserved records with pr_flush() Currently pr_flush() will only wait for records that were available to readers at the time of the call (using @@ -26,10 +26,10 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 115 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 53aa496cce91..e7b9a22f9a3a 100644 +index 2bb393009d4e..807692fd386a 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3756,7 +3756,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3806,7 +3806,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre might_sleep(); @@ -175,5 +175,5 @@ index d49460f7578e..52626d0f1fa3 100644 #ifdef CONFIG_64BIT -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0120-printk-ringbuffer-Skip-non-finalized-records-in-pani.patch b/buildroot-external/patches/linux/0120-printk-ringbuffer-Skip-non-finalized-records-in-pani.patch index 0132fd93..049bda34 100644 --- a/buildroot-external/patches/linux/0120-printk-ringbuffer-Skip-non-finalized-records-in-pani.patch +++ b/buildroot-external/patches/linux/0120-printk-ringbuffer-Skip-non-finalized-records-in-pani.patch @@ -1,7 +1,7 @@ -From df308fa800ac57b2c12c940e1ad7ce692fb2fbe2 Mon Sep 17 00:00:00 2001 +From 67555ae6c7856f8b889d6526642b29374da35069 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 13 Oct 2023 10:23:11 +0000 -Subject: [PATCH 120/196] printk: ringbuffer: Skip non-finalized records in +Subject: [PATCH 120/198] printk: ringbuffer: Skip non-finalized records in panic Normally a reader will stop once reaching a non-finalized @@ -69,5 +69,5 @@ index b7748d7c44c1..d6ed33683b8b 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0121-printk-ringbuffer-Consider-committed-as-finalized-in.patch b/buildroot-external/patches/linux/0121-printk-ringbuffer-Consider-committed-as-finalized-in.patch index bc37742a..3b7eb88e 100644 --- a/buildroot-external/patches/linux/0121-printk-ringbuffer-Consider-committed-as-finalized-in.patch +++ b/buildroot-external/patches/linux/0121-printk-ringbuffer-Consider-committed-as-finalized-in.patch @@ -1,7 +1,7 @@ -From 634ead0854338d5d970efa89437e9480f233c60e Mon Sep 17 00:00:00 2001 +From 66d130787be34ac6ffb46358d4a772f8f6ae60ca Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 20 Nov 2023 12:46:35 +0100 -Subject: [PATCH 121/196] printk: ringbuffer: Consider committed as finalized +Subject: [PATCH 121/198] printk: ringbuffer: Consider committed as finalized in panic A descriptor in the committed state means the record does not yet @@ -62,5 +62,5 @@ index d6ed33683b8b..e7b808b829a0 100644 * A descriptor in the reusable state may no longer have its data * available; report it as existing but with lost data. Or the record -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0123-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch b/buildroot-external/patches/linux/0122-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch similarity index 87% rename from buildroot-external/patches/linux/0123-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch rename to buildroot-external/patches/linux/0122-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch index 7f47d1f3..b9988ba3 100644 --- a/buildroot-external/patches/linux/0123-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch +++ b/buildroot-external/patches/linux/0122-printk-Avoid-non-panic-CPUs-writing-to-ringbuffer.patch @@ -1,7 +1,7 @@ -From e1bdd5dd8f02730a79e4a8341c742b5d2b96a252 Mon Sep 17 00:00:00 2001 +From 6386b76bb04958b97818a63e2300f915d32427ee Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 20 Oct 2023 09:37:05 +0000 -Subject: [PATCH 123/196] printk: Avoid non-panic CPUs writing to ringbuffer +Subject: [PATCH 122/198] printk: Avoid non-panic CPUs writing to ringbuffer Commit 13fb0f74d702 ("printk: Avoid livelock with heavy printk during panic") introduced a mechanism to silence non-panic CPUs @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2a45097c9a4c..15cc485109a5 100644 +index 807692fd386a..7c5ab5c01abb 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -462,12 +462,6 @@ static int console_msg_format = MSG_FORMAT_DEFAULT; @@ -37,7 +37,7 @@ index 2a45097c9a4c..15cc485109a5 100644 DECLARE_WAIT_QUEUE_HEAD(log_wait); /* All 3 protected by @syslog_lock. */ /* the next printk record to read by syslog(READ) or /proc/kmsg */ -@@ -2323,7 +2317,12 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2329,7 +2323,12 @@ asmlinkage int vprintk_emit(int facility, int level, if (unlikely(suppress_printk)) return 0; @@ -51,7 +51,7 @@ index 2a45097c9a4c..15cc485109a5 100644 return 0; if (level == LOGLEVEL_SCHED) { -@@ -2800,8 +2799,6 @@ void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped) +@@ -2806,8 +2805,6 @@ void console_prepend_dropped(struct printk_message *pmsg, unsigned long dropped) bool printk_get_next_message(struct printk_message *pmsg, u64 seq, bool is_extended, bool may_suppress) { @@ -60,7 +60,7 @@ index 2a45097c9a4c..15cc485109a5 100644 struct printk_buffers *pbufs = pmsg->pbufs; const size_t scratchbuf_sz = sizeof(pbufs->scratchbuf); const size_t outbuf_sz = sizeof(pbufs->outbuf); -@@ -2829,17 +2826,6 @@ bool printk_get_next_message(struct printk_message *pmsg, u64 seq, +@@ -2835,17 +2832,6 @@ bool printk_get_next_message(struct printk_message *pmsg, u64 seq, pmsg->seq = r.info->seq; pmsg->dropped = r.info->seq - seq; @@ -79,5 +79,5 @@ index 2a45097c9a4c..15cc485109a5 100644 if (may_suppress && suppress_message_printing(r.info->level)) goto out; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0122-printk-Disable-passing-console-lock-owner-completely.patch b/buildroot-external/patches/linux/0122-printk-Disable-passing-console-lock-owner-completely.patch deleted file mode 100644 index 11f7bf3d..00000000 --- a/buildroot-external/patches/linux/0122-printk-Disable-passing-console-lock-owner-completely.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 7d4b1ccdba89b262e020f0deef5793a360fd4cca Mon Sep 17 00:00:00 2001 -From: Petr Mladek -Date: Fri, 13 Oct 2023 14:12:05 +0000 -Subject: [PATCH 122/196] printk: Disable passing console lock owner completely - during panic() - -The commit d51507098ff91 ("printk: disable optimistic spin -during panic") added checks to avoid becoming a console waiter -if a panic is in progress. - -However, the transition to panic can occur while there is -already a waiter. The current owner should not pass the lock to -the waiter because it might get stopped or blocked anytime. - -Also the panic context might pass the console lock owner to an -already stopped waiter by mistake. It might happen when -console_flush_on_panic() ignores the current lock owner, for -example: - -CPU0 CPU1 ----- ---- -console_lock_spinning_enable() - console_trylock_spinning() - [CPU1 now console waiter] -NMI: panic() - panic_other_cpus_shutdown() - [stopped as console waiter] - console_flush_on_panic() - console_lock_spinning_enable() - [print 1 record] - console_lock_spinning_disable_and_check() - [handover to stopped CPU1] - -This results in panic() not flushing the panic messages. - -Fix these problems by disabling all spinning operations -completely during panic(). - -Another advantage is that it prevents possible deadlocks caused -by "console_owner_lock". The panic() context does not need to -take it any longer. The lockless checks are safe because the -functions become NOPs when they see the panic in progress. All -operations manipulating the state are still synchronized by the -lock even when non-panic CPUs would notice the panic -synchronously. - -The current owner might stay spinning. But non-panic() CPUs -would get stopped anyway and the panic context will never start -spinning. - -Fixes: dbdda842fe96 ("printk: Add console owner and waiter logic to load balance console writes") -Signed-off-by: Petr Mladek -Signed-off-by: John Ogness -Signed-off-by: Sebastian Andrzej Siewior ---- - kernel/printk/printk.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index e7b9a22f9a3a..2a45097c9a4c 100644 ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -1870,10 +1870,23 @@ static bool console_waiter; - */ - static void console_lock_spinning_enable(void) - { -+ /* -+ * Do not use spinning in panic(). The panic CPU wants to keep the lock. -+ * Non-panic CPUs abandon the flush anyway. -+ * -+ * Just keep the lockdep annotation. The panic-CPU should avoid -+ * taking console_owner_lock because it might cause a deadlock. -+ * This looks like the easiest way how to prevent false lockdep -+ * reports without handling races a lockless way. -+ */ -+ if (panic_in_progress()) -+ goto lockdep; -+ - raw_spin_lock(&console_owner_lock); - console_owner = current; - raw_spin_unlock(&console_owner_lock); - -+lockdep: - /* The waiter may spin on us after setting console_owner */ - spin_acquire(&console_owner_dep_map, 0, 0, _THIS_IP_); - } -@@ -1898,6 +1911,22 @@ static int console_lock_spinning_disable_and_check(int cookie) - { - int waiter; - -+ /* -+ * Ignore spinning waiters during panic() because they might get stopped -+ * or blocked at any time, -+ * -+ * It is safe because nobody is allowed to start spinning during panic -+ * in the first place. If there has been a waiter then non panic CPUs -+ * might stay spinning. They would get stopped anyway. The panic context -+ * will never start spinning and an interrupted spin on panic CPU will -+ * never continue. -+ */ -+ if (panic_in_progress()) { -+ /* Keep lockdep happy. */ -+ spin_release(&console_owner_dep_map, _THIS_IP_); -+ return 0; -+ } -+ - raw_spin_lock(&console_owner_lock); - waiter = READ_ONCE(console_waiter); - console_owner = NULL; --- -2.43.2 - diff --git a/buildroot-external/patches/linux/0124-panic-Flush-kernel-log-buffer-at-the-end.patch b/buildroot-external/patches/linux/0123-panic-Flush-kernel-log-buffer-at-the-end.patch similarity index 91% rename from buildroot-external/patches/linux/0124-panic-Flush-kernel-log-buffer-at-the-end.patch rename to buildroot-external/patches/linux/0123-panic-Flush-kernel-log-buffer-at-the-end.patch index 67db86c1..e611094a 100644 --- a/buildroot-external/patches/linux/0124-panic-Flush-kernel-log-buffer-at-the-end.patch +++ b/buildroot-external/patches/linux/0123-panic-Flush-kernel-log-buffer-at-the-end.patch @@ -1,7 +1,7 @@ -From 758c07accd9822d11f4ac996aff9204f0d7a551e Mon Sep 17 00:00:00 2001 +From db621f13961fb858c2545305b62a569ccf95314e Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 14 Dec 2023 20:48:23 +0000 -Subject: [PATCH 124/196] panic: Flush kernel log buffer at the end +Subject: [PATCH 123/198] panic: Flush kernel log buffer at the end If the kernel crashes in a context where printk() calls always defer printing (such as in NMI or inside a printk_safe section) @@ -39,5 +39,5 @@ index ffa037fa777d..ef9f9a4e928d 100644 for (i = 0; ; i += PANIC_TIMER_STEP) { touch_softlockup_watchdog(); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0125-printk-Consider-nbcon-boot-consoles-on-seq-init.patch b/buildroot-external/patches/linux/0124-printk-Consider-nbcon-boot-consoles-on-seq-init.patch similarity index 86% rename from buildroot-external/patches/linux/0125-printk-Consider-nbcon-boot-consoles-on-seq-init.patch rename to buildroot-external/patches/linux/0124-printk-Consider-nbcon-boot-consoles-on-seq-init.patch index e824e4c5..a755e0aa 100644 --- a/buildroot-external/patches/linux/0125-printk-Consider-nbcon-boot-consoles-on-seq-init.patch +++ b/buildroot-external/patches/linux/0124-printk-Consider-nbcon-boot-consoles-on-seq-init.patch @@ -1,7 +1,7 @@ -From c5bb4969d45d74a2076fcd77a5ca69173dcb0beb Mon Sep 17 00:00:00 2001 +From ba0466e23097af5f1b452c33faeae6b639476e22 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 22 Nov 2023 11:23:43 +0000 -Subject: [PATCH 125/196] printk: Consider nbcon boot consoles on seq init +Subject: [PATCH 124/198] printk: Consider nbcon boot consoles on seq init If a non-boot console is registering and boot consoles exist, the consoles are flushed before being unregistered. This allows the @@ -23,10 +23,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 15cc485109a5..87d3510e3e45 100644 +index 7c5ab5c01abb..ae3bf0cf215a 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3392,11 +3392,20 @@ static void console_init_seq(struct console *newcon, bool bootcon_registered) +@@ -3413,11 +3413,20 @@ static void console_init_seq(struct console *newcon, bool bootcon_registered) newcon->seq = prb_next_seq(prb); for_each_console(con) { @@ -52,5 +52,5 @@ index 15cc485109a5..87d3510e3e45 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0126-printk-Add-sparse-notation-to-console_srcu-locking.patch b/buildroot-external/patches/linux/0125-printk-Add-sparse-notation-to-console_srcu-locking.patch similarity index 87% rename from buildroot-external/patches/linux/0126-printk-Add-sparse-notation-to-console_srcu-locking.patch rename to buildroot-external/patches/linux/0125-printk-Add-sparse-notation-to-console_srcu-locking.patch index 178f82e8..fab7126f 100644 --- a/buildroot-external/patches/linux/0126-printk-Add-sparse-notation-to-console_srcu-locking.patch +++ b/buildroot-external/patches/linux/0125-printk-Add-sparse-notation-to-console_srcu-locking.patch @@ -1,7 +1,7 @@ -From 5c2d5cab7ae6fa9dbc3281ac0c9b26272f019746 Mon Sep 17 00:00:00 2001 +From 86e5f827bbd8eef4808fb92c332b79763976ef6d Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 9 Oct 2023 13:55:19 +0000 -Subject: [PATCH 126/196] printk: Add sparse notation to console_srcu locking +Subject: [PATCH 125/198] printk: Add sparse notation to console_srcu locking kernel/printk/printk.c:284:5: sparse: sparse: context imbalance in 'console_srcu_read_lock' - wrong count at exit @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 87d3510e3e45..c4ae4538dba7 100644 +index ae3bf0cf215a..ea13c808c282 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -282,6 +282,7 @@ EXPORT_SYMBOL(console_list_unlock); @@ -37,5 +37,5 @@ index 87d3510e3e45..c4ae4538dba7 100644 srcu_read_unlock_nmisafe(&console_srcu, cookie); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0127-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch b/buildroot-external/patches/linux/0126-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch similarity index 93% rename from buildroot-external/patches/linux/0127-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch rename to buildroot-external/patches/linux/0126-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch index 32c3a8aa..25de6dce 100644 --- a/buildroot-external/patches/linux/0127-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch +++ b/buildroot-external/patches/linux/0126-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch @@ -1,7 +1,7 @@ -From 658fb663bc28a42af52a216d7bf66f844dd23d69 Mon Sep 17 00:00:00 2001 +From 603d98ea57fc0d9f9c81c95304664ed8d1c60a27 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 20 Oct 2023 09:52:59 +0000 -Subject: [PATCH 127/196] printk: nbcon: Ensure ownership release on failed +Subject: [PATCH 126/198] printk: nbcon: Ensure ownership release on failed emit Until now it was assumed that ownership has been lost when the @@ -59,5 +59,5 @@ index c8093bcc01fe..8ecd76aa22e6 100644 /* * Since any dropped message was successfully output, reset the -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0128-printk-Check-printk_deferred_enter-_exit-usage.patch b/buildroot-external/patches/linux/0127-printk-Check-printk_deferred_enter-_exit-usage.patch similarity index 93% rename from buildroot-external/patches/linux/0128-printk-Check-printk_deferred_enter-_exit-usage.patch rename to buildroot-external/patches/linux/0127-printk-Check-printk_deferred_enter-_exit-usage.patch index 0c1dff0e..a34c5d37 100644 --- a/buildroot-external/patches/linux/0128-printk-Check-printk_deferred_enter-_exit-usage.patch +++ b/buildroot-external/patches/linux/0127-printk-Check-printk_deferred_enter-_exit-usage.patch @@ -1,7 +1,7 @@ -From 397d9aaeec7f0592a80468974f2e8d952d9a94ec Mon Sep 17 00:00:00 2001 +From b2dc5422eb7660a8b8ebb9a3a97d98394618fe76 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 22 Sep 2023 14:58:18 +0000 -Subject: [PATCH 128/196] printk: Check printk_deferred_enter()/_exit() usage +Subject: [PATCH 127/198] printk: Check printk_deferred_enter()/_exit() usage Add validation that printk_deferred_enter()/_exit() are called in non-migration contexts. @@ -61,5 +61,5 @@ index 6d10927a07d8..8d9408d653de 100644 { #ifdef CONFIG_KGDB_KDB -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0129-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch b/buildroot-external/patches/linux/0128-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch similarity index 97% rename from buildroot-external/patches/linux/0129-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch rename to buildroot-external/patches/linux/0128-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch index 15a044c0..40f4abce 100644 --- a/buildroot-external/patches/linux/0129-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch +++ b/buildroot-external/patches/linux/0128-printk-nbcon-Implement-processing-in-port-lock-wrapp.patch @@ -1,7 +1,7 @@ -From cc53b9de973f6e6773f583602563678cd0f780ec Mon Sep 17 00:00:00 2001 +From 21753bf733d3df316940fdcb4fe3ec7e498a50a1 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 13 Sep 2023 08:35:23 +0000 -Subject: [PATCH 129/196] printk: nbcon: Implement processing in port->lock +Subject: [PATCH 128/198] printk: nbcon: Implement processing in port->lock wrapper Currently the port->lock wrappers uart_port_lock(), @@ -81,7 +81,7 @@ index f4502b036e48..2aa57a870caf 100644 #ifdef CONFIG_SMP diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h -index f43aca7f3b01..90f4a11d24eb 100644 +index 678409c47b88..150dcf1ea332 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -595,6 +595,7 @@ struct uart_port { @@ -251,5 +251,5 @@ index 8ecd76aa22e6..a5707fe1e95e 100644 +} +EXPORT_SYMBOL_GPL(nbcon_release); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0130-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch b/buildroot-external/patches/linux/0129-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch similarity index 92% rename from buildroot-external/patches/linux/0130-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch rename to buildroot-external/patches/linux/0129-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch index 9c4dd8c1..179ae04a 100644 --- a/buildroot-external/patches/linux/0130-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch +++ b/buildroot-external/patches/linux/0129-printk-nbcon-Add-driver_enter-driver_exit-console-ca.patch @@ -1,7 +1,7 @@ -From 3b3da4e4e9170710e72c9c414e5800c6d887dbc9 Mon Sep 17 00:00:00 2001 +From 3a755adbb2855715fed940d577469d65179b2c94 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 8 Dec 2023 15:54:27 +0000 -Subject: [PATCH 130/196] printk: nbcon: Add driver_enter/driver_exit console +Subject: [PATCH 129/198] printk: nbcon: Add driver_enter/driver_exit console callbacks Console drivers need some mechanism to synchronize between "normal @@ -43,5 +43,5 @@ index c27bd5189660..73515c324347 100644 atomic_long_t __private nbcon_seq; struct printk_buffers *pbufs; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0131-printk-Make-console_is_usable-available-to-nbcon.patch b/buildroot-external/patches/linux/0130-printk-Make-console_is_usable-available-to-nbcon.patch similarity index 92% rename from buildroot-external/patches/linux/0131-printk-Make-console_is_usable-available-to-nbcon.patch rename to buildroot-external/patches/linux/0130-printk-Make-console_is_usable-available-to-nbcon.patch index d4b8cb42..b13e5626 100644 --- a/buildroot-external/patches/linux/0131-printk-Make-console_is_usable-available-to-nbcon.patch +++ b/buildroot-external/patches/linux/0130-printk-Make-console_is_usable-available-to-nbcon.patch @@ -1,7 +1,7 @@ -From 865dcc34c0f8ecbdee000290ded20ae38e0a14ad Mon Sep 17 00:00:00 2001 +From efdd7f7e45f5b24fca1e6682e14ca1f209a54b50 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 12 Sep 2023 13:25:41 +0000 -Subject: [PATCH 131/196] printk: Make console_is_usable() available to nbcon +Subject: [PATCH 130/198] printk: Make console_is_usable() available to nbcon Move console_is_usable() as-is into internal.h so that it can be used by nbcon printing functions as well. @@ -65,10 +65,10 @@ index ac2d9750e5f8..378ccca007ca 100644 extern struct printk_buffers printk_shared_pbufs; diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index c4ae4538dba7..bdf826dc7672 100644 +index ea13c808c282..d959be5c4102 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2695,36 +2695,6 @@ int is_console_locked(void) +@@ -2701,36 +2701,6 @@ int is_console_locked(void) } EXPORT_SYMBOL(is_console_locked); @@ -106,5 +106,5 @@ index c4ae4538dba7..bdf826dc7672 100644 { console_locked = 0; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0132-printk-Let-console_is_usable-handle-nbcon.patch b/buildroot-external/patches/linux/0131-printk-Let-console_is_usable-handle-nbcon.patch similarity index 91% rename from buildroot-external/patches/linux/0132-printk-Let-console_is_usable-handle-nbcon.patch rename to buildroot-external/patches/linux/0131-printk-Let-console_is_usable-handle-nbcon.patch index b18a6516..c30f4a42 100644 --- a/buildroot-external/patches/linux/0132-printk-Let-console_is_usable-handle-nbcon.patch +++ b/buildroot-external/patches/linux/0131-printk-Let-console_is_usable-handle-nbcon.patch @@ -1,7 +1,7 @@ -From 8847531d9096f4c400156e67aacf15f1dac79db1 Mon Sep 17 00:00:00 2001 +From d2f37f9e4496a237c968e51173e29868d5531646 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 12 Sep 2023 13:53:21 +0000 -Subject: [PATCH 132/196] printk: Let console_is_usable() handle nbcon +Subject: [PATCH 131/198] printk: Let console_is_usable() handle nbcon The nbcon consoles use a different printing callback. For nbcon consoles, check for the write_atomic() callback instead of @@ -44,5 +44,5 @@ index 378ccca007ca..d741d19bb9db 100644 /* * Console drivers may assume that per-cpu resources have been -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0133-printk-Add-flags-argument-for-console_is_usable.patch b/buildroot-external/patches/linux/0132-printk-Add-flags-argument-for-console_is_usable.patch similarity index 88% rename from buildroot-external/patches/linux/0133-printk-Add-flags-argument-for-console_is_usable.patch rename to buildroot-external/patches/linux/0132-printk-Add-flags-argument-for-console_is_usable.patch index 430ec4e9..d15fafb3 100644 --- a/buildroot-external/patches/linux/0133-printk-Add-flags-argument-for-console_is_usable.patch +++ b/buildroot-external/patches/linux/0132-printk-Add-flags-argument-for-console_is_usable.patch @@ -1,7 +1,7 @@ -From f21d2e03634c127849c720ac6d14356bffe82d7f Mon Sep 17 00:00:00 2001 +From 72ef0acd2e92f18c01dcfc7918af2835b3857952 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 12 Sep 2023 13:45:33 +0000 -Subject: [PATCH 133/196] printk: Add @flags argument for console_is_usable() +Subject: [PATCH 132/198] printk: Add @flags argument for console_is_usable() The caller of console_is_usable() usually needs @console->flags for its own checks. Rather than having console_is_usable() read @@ -45,10 +45,10 @@ index d741d19bb9db..cd1ce0235f01 100644 #endif /* CONFIG_PRINTK */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index bdf826dc7672..ef579b472363 100644 +index d959be5c4102..bdd3d7e40e63 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2940,9 +2940,10 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -2946,9 +2946,10 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove cookie = console_srcu_read_lock(); for_each_console_srcu(con) { @@ -60,7 +60,7 @@ index bdf826dc7672..ef579b472363 100644 continue; any_usable = true; -@@ -3784,7 +3785,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3805,7 +3806,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre * that they make forward progress, so only increment * @diff for usable consoles. */ @@ -70,5 +70,5 @@ index bdf826dc7672..ef579b472363 100644 if (flags & CON_NBCON) { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0134-printk-nbcon-Provide-function-to-flush-using-write_a.patch b/buildroot-external/patches/linux/0133-printk-nbcon-Provide-function-to-flush-using-write_a.patch similarity index 96% rename from buildroot-external/patches/linux/0134-printk-nbcon-Provide-function-to-flush-using-write_a.patch rename to buildroot-external/patches/linux/0133-printk-nbcon-Provide-function-to-flush-using-write_a.patch index a265e153..12342978 100644 --- a/buildroot-external/patches/linux/0134-printk-nbcon-Provide-function-to-flush-using-write_a.patch +++ b/buildroot-external/patches/linux/0133-printk-nbcon-Provide-function-to-flush-using-write_a.patch @@ -1,7 +1,7 @@ -From 6efd22b08903646f6d6b5b6422789d7547a11286 Mon Sep 17 00:00:00 2001 +From d73d9e0532546be3071b7d9badc4b5818f0a4e10 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Sep 2023 12:00:08 +0000 -Subject: [PATCH 134/196] printk: nbcon: Provide function to flush using +Subject: [PATCH 133/198] printk: nbcon: Provide function to flush using write_atomic() Provide nbcon_atomic_flush_all() to perform flushing of all @@ -178,10 +178,10 @@ index a5707fe1e95e..d0780168e319 100644 * nbcon_alloc - Allocate buffers needed by the nbcon console * @con: Console to allocate buffers for diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index ef579b472363..2aa2adb1c546 100644 +index bdd3d7e40e63..271865952a4d 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3170,6 +3170,8 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -3176,6 +3176,8 @@ void console_flush_on_panic(enum con_flush_mode mode) console_srcu_read_unlock(cookie); } @@ -191,5 +191,5 @@ index ef579b472363..2aa2adb1c546 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0135-printk-Track-registered-boot-consoles.patch b/buildroot-external/patches/linux/0134-printk-Track-registered-boot-consoles.patch similarity index 86% rename from buildroot-external/patches/linux/0135-printk-Track-registered-boot-consoles.patch rename to buildroot-external/patches/linux/0134-printk-Track-registered-boot-consoles.patch index 35f3e655..aa9eec22 100644 --- a/buildroot-external/patches/linux/0135-printk-Track-registered-boot-consoles.patch +++ b/buildroot-external/patches/linux/0134-printk-Track-registered-boot-consoles.patch @@ -1,7 +1,7 @@ -From edbb86d68e362282bb5f4c9cccff869772f69f2e Mon Sep 17 00:00:00 2001 +From 4f930e584df6d58f3bcf2508a01e424bf773b994 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 24 Oct 2023 14:13:14 +0000 -Subject: [PATCH 135/196] printk: Track registered boot consoles +Subject: [PATCH 134/198] printk: Track registered boot consoles Unfortunately it is not known if a boot console and a regular (legacy or nbcon) console use the same hardware. For this reason @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 24 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2aa2adb1c546..1ad6d6d8ad2e 100644 +index 271865952a4d..4185c58f7915 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -463,6 +463,14 @@ static int console_msg_format = MSG_FORMAT_DEFAULT; @@ -41,7 +41,7 @@ index 2aa2adb1c546..1ad6d6d8ad2e 100644 #ifdef CONFIG_PRINTK DECLARE_WAIT_QUEUE_HEAD(log_wait); /* All 3 protected by @syslog_lock. */ -@@ -3500,6 +3508,9 @@ void register_console(struct console *newcon) +@@ -3521,6 +3529,9 @@ void register_console(struct console *newcon) if (newcon->flags & CON_NBCON) nbcon_init(newcon); @@ -51,7 +51,7 @@ index 2aa2adb1c546..1ad6d6d8ad2e 100644 /* * Put this console in the list - keep the * preferred driver at the head of the list. -@@ -3552,6 +3563,8 @@ EXPORT_SYMBOL(register_console); +@@ -3573,6 +3584,8 @@ EXPORT_SYMBOL(register_console); /* Must be called under console_list_lock(). */ static int unregister_console_locked(struct console *console) { @@ -60,7 +60,7 @@ index 2aa2adb1c546..1ad6d6d8ad2e 100644 int res; lockdep_assert_console_list_lock_held(); -@@ -3599,6 +3612,17 @@ static int unregister_console_locked(struct console *console) +@@ -3620,6 +3633,17 @@ static int unregister_console_locked(struct console *console) if (console->exit) res = console->exit(console); @@ -79,5 +79,5 @@ index 2aa2adb1c546..1ad6d6d8ad2e 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0136-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch b/buildroot-external/patches/linux/0135-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch similarity index 95% rename from buildroot-external/patches/linux/0136-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch rename to buildroot-external/patches/linux/0135-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch index ad225448..ab394bcc 100644 --- a/buildroot-external/patches/linux/0136-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch +++ b/buildroot-external/patches/linux/0135-printk-nbcon-Use-nbcon-consoles-in-console_flush_all.patch @@ -1,7 +1,7 @@ -From d9b5edbbf16c03ead8cdce023e65056a7b8145b2 Mon Sep 17 00:00:00 2001 +From 83cb83122d956641ae5d7d798ebc4a160a36db2f Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 19 Sep 2023 14:33:27 +0000 -Subject: [PATCH 136/196] printk: nbcon: Use nbcon consoles in +Subject: [PATCH 135/198] printk: nbcon: Use nbcon consoles in console_flush_all() Allow nbcon consoles to print messages in the printk() caller @@ -121,7 +121,7 @@ index d0780168e319..c17cf3ea6153 100644 * __nbcon_atomic_flush_all - Flush all nbcon consoles using their * write_atomic() callback diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1ad6d6d8ad2e..8a023a6db7c9 100644 +index 4185c58f7915..d6173575ea03 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1872,7 +1872,7 @@ static bool console_waiter; @@ -142,7 +142,7 @@ index 1ad6d6d8ad2e..8a023a6db7c9 100644 { int waiter; -@@ -2949,13 +2949,22 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -2955,13 +2955,22 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove cookie = console_srcu_read_lock(); for_each_console_srcu(con) { short flags = console_srcu_read_flags(con); @@ -166,7 +166,7 @@ index 1ad6d6d8ad2e..8a023a6db7c9 100644 /* * If a handover has occurred, the SRCU read lock -@@ -2965,8 +2974,8 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -2971,8 +2980,8 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove return false; /* Track the next of the highest seq flushed. */ @@ -178,5 +178,5 @@ index 1ad6d6d8ad2e..8a023a6db7c9 100644 if (!progress) continue; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0137-printk-nbcon-Assign-priority-based-on-CPU-state.patch b/buildroot-external/patches/linux/0136-printk-nbcon-Assign-priority-based-on-CPU-state.patch similarity index 96% rename from buildroot-external/patches/linux/0137-printk-nbcon-Assign-priority-based-on-CPU-state.patch rename to buildroot-external/patches/linux/0136-printk-nbcon-Assign-priority-based-on-CPU-state.patch index 033ba025..1eabfece 100644 --- a/buildroot-external/patches/linux/0137-printk-nbcon-Assign-priority-based-on-CPU-state.patch +++ b/buildroot-external/patches/linux/0136-printk-nbcon-Assign-priority-based-on-CPU-state.patch @@ -1,7 +1,7 @@ -From a920606f828c8a5794abe28fad17f92d92857626 Mon Sep 17 00:00:00 2001 +From 7705354adeb79a835d99e3d88414cdfe6cf07f60 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Thu, 14 Dec 2023 14:38:42 +0000 -Subject: [PATCH 137/196] printk: nbcon: Assign priority based on CPU state +Subject: [PATCH 136/198] printk: nbcon: Assign priority based on CPU state Use the current state of the CPU to determine which priority to assign to the printing context. @@ -116,5 +116,5 @@ index c17cf3ea6153..3e999784ba5c 100644 void nbcon_release(struct uart_port *up) { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0138-printk-nbcon-Add-unsafe-flushing-on-panic.patch b/buildroot-external/patches/linux/0137-printk-nbcon-Add-unsafe-flushing-on-panic.patch similarity index 96% rename from buildroot-external/patches/linux/0138-printk-nbcon-Add-unsafe-flushing-on-panic.patch rename to buildroot-external/patches/linux/0137-printk-nbcon-Add-unsafe-flushing-on-panic.patch index 5ccb3721..eb5d44f9 100644 --- a/buildroot-external/patches/linux/0138-printk-nbcon-Add-unsafe-flushing-on-panic.patch +++ b/buildroot-external/patches/linux/0137-printk-nbcon-Add-unsafe-flushing-on-panic.patch @@ -1,7 +1,7 @@ -From 0e5f0963a60d11c35828b5635c2ce1b4c3d800e2 Mon Sep 17 00:00:00 2001 +From 56ceb90cac5939a9e30555e91c08a1a1dcf6ddae Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 20 Oct 2023 10:03:42 +0000 -Subject: [PATCH 138/196] printk: nbcon: Add unsafe flushing on panic +Subject: [PATCH 137/198] printk: nbcon: Add unsafe flushing on panic Add nbcon_atomic_flush_unsafe() to flush all nbcon consoles using the write_atomic() callback and allowing unsafe hostile @@ -101,5 +101,5 @@ index 3e999784ba5c..1c01f88d596d 100644 /** -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0139-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch b/buildroot-external/patches/linux/0138-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch similarity index 87% rename from buildroot-external/patches/linux/0139-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch rename to buildroot-external/patches/linux/0138-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch index 126af5f5..fb4b88a3 100644 --- a/buildroot-external/patches/linux/0139-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch +++ b/buildroot-external/patches/linux/0138-printk-Avoid-console_lock-dance-if-no-legacy-or-boot.patch @@ -1,7 +1,7 @@ -From d0da2306d4d604ad861515b6b391bda5f4016622 Mon Sep 17 00:00:00 2001 +From cf9fd1cc9f710ad5cb9d68887a5b7022383c0898 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 26 Sep 2023 12:44:07 +0000 -Subject: [PATCH 139/196] printk: Avoid console_lock dance if no legacy or boot +Subject: [PATCH 138/198] printk: Avoid console_lock dance if no legacy or boot consoles Currently the console lock is used to attempt legacy-type @@ -56,7 +56,7 @@ index c4417fc48b7e..e2675981dfc5 100644 * In !PRINTK builds we still export console_sem * semaphore and some of console functions (console_unlock()/etc.), so diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 8a023a6db7c9..26958c8b2810 100644 +index d6173575ea03..e92da55b8e9f 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -463,6 +463,13 @@ static int console_msg_format = MSG_FORMAT_DEFAULT; @@ -73,7 +73,7 @@ index 8a023a6db7c9..26958c8b2810 100644 /* * Specifies if a boot console is registered. If boot consoles are present, * nbcon consoles cannot print simultaneously and must be synchronized by -@@ -2345,7 +2352,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2351,7 +2358,7 @@ asmlinkage int vprintk_emit(int facility, int level, printed_len = vprintk_store(facility, level, dev_info, fmt, args); /* If called from the scheduler, we can not call up(). */ @@ -82,7 +82,7 @@ index 8a023a6db7c9..26958c8b2810 100644 /* * The caller may be holding system-critical or * timing-sensitive locks. Disable preemption during -@@ -2646,7 +2653,7 @@ void resume_console(void) +@@ -2652,7 +2659,7 @@ void resume_console(void) */ static int console_cpu_notify(unsigned int cpu) { @@ -91,7 +91,7 @@ index 8a023a6db7c9..26958c8b2810 100644 /* If trylock fails, someone else is doing the printing */ if (console_trylock()) console_unlock(); -@@ -3189,7 +3196,8 @@ void console_flush_on_panic(enum con_flush_mode mode) +@@ -3195,7 +3202,8 @@ void console_flush_on_panic(enum con_flush_mode mode) nbcon_atomic_flush_all(); @@ -101,7 +101,7 @@ index 8a023a6db7c9..26958c8b2810 100644 } /* -@@ -3514,8 +3522,11 @@ void register_console(struct console *newcon) +@@ -3535,8 +3543,11 @@ void register_console(struct console *newcon) newcon->dropped = 0; console_init_seq(newcon, bootcon_registered); @@ -114,7 +114,7 @@ index 8a023a6db7c9..26958c8b2810 100644 if (newcon->flags & CON_BOOT) have_boot_console = true; -@@ -3572,6 +3583,7 @@ EXPORT_SYMBOL(register_console); +@@ -3593,6 +3604,7 @@ EXPORT_SYMBOL(register_console); /* Must be called under console_list_lock(). */ static int unregister_console_locked(struct console *console) { @@ -122,7 +122,7 @@ index 8a023a6db7c9..26958c8b2810 100644 bool found_boot_con = false; struct console *c; int res; -@@ -3628,9 +3640,13 @@ static int unregister_console_locked(struct console *console) +@@ -3649,9 +3661,13 @@ static int unregister_console_locked(struct console *console) for_each_console(c) { if (c->flags & CON_BOOT) found_boot_con = true; @@ -136,7 +136,7 @@ index 8a023a6db7c9..26958c8b2810 100644 return res; } -@@ -3782,6 +3798,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3803,6 +3819,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre u64 last_diff = 0; u64 printk_seq; short flags; @@ -144,7 +144,7 @@ index 8a023a6db7c9..26958c8b2810 100644 int cookie; u64 diff; u64 seq; -@@ -3791,22 +3808,28 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3812,22 +3829,28 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre seq = prb_next_reserve_seq(prb); /* Flush the consoles so that records up to @seq are printed. */ @@ -182,7 +182,7 @@ index 8a023a6db7c9..26958c8b2810 100644 cookie = console_srcu_read_lock(); for_each_console_srcu(c) { -@@ -3826,6 +3849,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3847,6 +3870,7 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre if (flags & CON_NBCON) { printk_seq = nbcon_seq_read(c); } else { @@ -190,7 +190,7 @@ index 8a023a6db7c9..26958c8b2810 100644 printk_seq = c->seq; } -@@ -3837,7 +3861,8 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3858,7 +3882,8 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre if (diff != last_diff && reset_on_progress) remaining_jiffies = timeout_jiffies; @@ -200,7 +200,7 @@ index 8a023a6db7c9..26958c8b2810 100644 /* Note: @diff is 0 if there are no usable consoles. */ if (diff == 0 || remaining_jiffies == 0) -@@ -3959,7 +3984,11 @@ void defer_console_output(void) +@@ -3980,7 +4005,11 @@ void defer_console_output(void) * New messages may have been added directly to the ringbuffer * using vprintk_store(), so wake any waiters as well. */ @@ -214,5 +214,5 @@ index 8a023a6db7c9..26958c8b2810 100644 void printk_trigger_flush(void) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0140-printk-Track-nbcon-consoles.patch b/buildroot-external/patches/linux/0139-printk-Track-nbcon-consoles.patch similarity index 84% rename from buildroot-external/patches/linux/0140-printk-Track-nbcon-consoles.patch rename to buildroot-external/patches/linux/0139-printk-Track-nbcon-consoles.patch index 908f5401..8124aa84 100644 --- a/buildroot-external/patches/linux/0140-printk-Track-nbcon-consoles.patch +++ b/buildroot-external/patches/linux/0139-printk-Track-nbcon-consoles.patch @@ -1,7 +1,7 @@ -From 452db4563b02c88bf1e0312c20dc54c35f0c7a17 Mon Sep 17 00:00:00 2001 +From e94b1b0db090410a8e0a95bccf5eabe740c537fc Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 11 Dec 2023 09:36:52 +0000 -Subject: [PATCH 140/196] printk: Track nbcon consoles +Subject: [PATCH 139/198] printk: Track nbcon consoles Add a global flag @have_nbcon_console to identify if any nbcon consoles are registered. This will be used in follow-up commits @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 26958c8b2810..e84da28db173 100644 +index e92da55b8e9f..977a97f0396b 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -470,6 +470,13 @@ static DEFINE_MUTEX(syslog_lock); @@ -31,7 +31,7 @@ index 26958c8b2810..e84da28db173 100644 /* * Specifies if a boot console is registered. If boot consoles are present, * nbcon consoles cannot print simultaneously and must be synchronized by -@@ -3523,6 +3530,7 @@ void register_console(struct console *newcon) +@@ -3544,6 +3551,7 @@ void register_console(struct console *newcon) console_init_seq(newcon, bootcon_registered); if (newcon->flags & CON_NBCON) { @@ -39,7 +39,7 @@ index 26958c8b2810..e84da28db173 100644 nbcon_init(newcon); } else { have_legacy_console = true; -@@ -3584,6 +3592,7 @@ EXPORT_SYMBOL(register_console); +@@ -3605,6 +3613,7 @@ EXPORT_SYMBOL(register_console); static int unregister_console_locked(struct console *console) { bool found_legacy_con = false; @@ -47,7 +47,7 @@ index 26958c8b2810..e84da28db173 100644 bool found_boot_con = false; struct console *c; int res; -@@ -3640,13 +3649,18 @@ static int unregister_console_locked(struct console *console) +@@ -3661,13 +3670,18 @@ static int unregister_console_locked(struct console *console) for_each_console(c) { if (c->flags & CON_BOOT) found_boot_con = true; @@ -68,5 +68,5 @@ index 26958c8b2810..e84da28db173 100644 return res; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0141-printk-Coordinate-direct-printing-in-panic.patch b/buildroot-external/patches/linux/0140-printk-Coordinate-direct-printing-in-panic.patch similarity index 91% rename from buildroot-external/patches/linux/0141-printk-Coordinate-direct-printing-in-panic.patch rename to buildroot-external/patches/linux/0140-printk-Coordinate-direct-printing-in-panic.patch index 10e1499a..c75578f4 100644 --- a/buildroot-external/patches/linux/0141-printk-Coordinate-direct-printing-in-panic.patch +++ b/buildroot-external/patches/linux/0140-printk-Coordinate-direct-printing-in-panic.patch @@ -1,7 +1,7 @@ -From 66c59e7b1eeb5f89fda651c62d7178e34d9e92c5 Mon Sep 17 00:00:00 2001 +From da1ef01e278544e6f355dc67afbb8b297ebfcf35 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 22 Nov 2023 11:56:58 +0000 -Subject: [PATCH 141/196] printk: Coordinate direct printing in panic +Subject: [PATCH 140/198] printk: Coordinate direct printing in panic Perform printing by nbcon consoles on the panic CPU from the printk() caller context in order to get panic messages printed @@ -49,10 +49,10 @@ index 219b69fbe829..f0e91a0c4001 100644 kmsg_dump(KMSG_DUMP_PANIC); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index e84da28db173..9c2e26ce16f9 100644 +index 977a97f0396b..e8d60e29c17f 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2330,12 +2330,23 @@ int vprintk_store(int facility, int level, +@@ -2336,12 +2336,23 @@ int vprintk_store(int facility, int level, return ret; } @@ -77,7 +77,7 @@ index e84da28db173..9c2e26ce16f9 100644 /* Suppress unimportant messages after panic happens */ if (unlikely(suppress_printk)) -@@ -2351,15 +2362,43 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2357,15 +2368,43 @@ asmlinkage int vprintk_emit(int facility, int level, if (level == LOGLEVEL_SCHED) { level = LOGLEVEL_DEFAULT; @@ -124,7 +124,7 @@ index e84da28db173..9c2e26ce16f9 100644 /* * The caller may be holding system-critical or * timing-sensitive locks. Disable preemption during -@@ -2379,10 +2418,10 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2385,10 +2424,10 @@ asmlinkage int vprintk_emit(int facility, int level, preempt_enable(); } @@ -139,5 +139,5 @@ index e84da28db173..9c2e26ce16f9 100644 return printed_len; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0142-printk-nbcon-Implement-emergency-sections.patch b/buildroot-external/patches/linux/0141-printk-nbcon-Implement-emergency-sections.patch similarity index 97% rename from buildroot-external/patches/linux/0142-printk-nbcon-Implement-emergency-sections.patch rename to buildroot-external/patches/linux/0141-printk-nbcon-Implement-emergency-sections.patch index e817c337..d7ea4b78 100644 --- a/buildroot-external/patches/linux/0142-printk-nbcon-Implement-emergency-sections.patch +++ b/buildroot-external/patches/linux/0141-printk-nbcon-Implement-emergency-sections.patch @@ -1,7 +1,7 @@ -From 92634b7c6a41eefbd7252c57b7a29a70bd236bb4 Mon Sep 17 00:00:00 2001 +From 2d24e2a5cd438654ffaf1e3d17ec0b99115a8520 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 11 Sep 2023 15:21:57 +0000 -Subject: [PATCH 142/196] printk: nbcon: Implement emergency sections +Subject: [PATCH 141/198] printk: nbcon: Implement emergency sections In emergency situations (something has gone wrong but the system continues to operate), usually important information @@ -199,10 +199,10 @@ index 1c01f88d596d..c3ee245397f6 100644 * nbcon_alloc - Allocate buffers needed by the nbcon console * @con: Console to allocate buffers for diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 9c2e26ce16f9..11f26ad708d5 100644 +index e8d60e29c17f..4a0df41d32b8 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2405,16 +2405,29 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2411,16 +2411,29 @@ asmlinkage int vprintk_emit(int facility, int level, * printing of all remaining records to all consoles so that * this context can return as soon as possible. Hopefully * another printk() caller will take over the printing. @@ -239,5 +239,5 @@ index 9c2e26ce16f9..11f26ad708d5 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-warn.patch b/buildroot-external/patches/linux/0142-panic-Mark-emergency-section-in-warn.patch similarity index 90% rename from buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-warn.patch rename to buildroot-external/patches/linux/0142-panic-Mark-emergency-section-in-warn.patch index 5209d76e..96faf19c 100644 --- a/buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-warn.patch +++ b/buildroot-external/patches/linux/0142-panic-Mark-emergency-section-in-warn.patch @@ -1,7 +1,7 @@ -From b6903e4522c7e636e2cd825a56715a459e6fc52d Mon Sep 17 00:00:00 2001 +From 0e5b7f4158427c921223eb338bd8cdeb7e6f94ba Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 11 Sep 2023 15:53:04 +0000 -Subject: [PATCH 143/196] panic: Mark emergency section in warn +Subject: [PATCH 142/198] panic: Mark emergency section in warn Mark the full contents of __warn() as an emergency section. In this section, the CPU will not perform console output for the @@ -39,5 +39,5 @@ index f0e91a0c4001..147803c3a402 100644 #ifdef CONFIG_BUG -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0144-panic-Mark-emergency-section-in-oops.patch b/buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-oops.patch similarity index 90% rename from buildroot-external/patches/linux/0144-panic-Mark-emergency-section-in-oops.patch rename to buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-oops.patch index 82e2a773..66d495ec 100644 --- a/buildroot-external/patches/linux/0144-panic-Mark-emergency-section-in-oops.patch +++ b/buildroot-external/patches/linux/0143-panic-Mark-emergency-section-in-oops.patch @@ -1,7 +1,7 @@ -From d562c13004b0c324736db8e33568e2b71b45fb68 Mon Sep 17 00:00:00 2001 +From a8eddfddf44cb7a26845ed266a228f660277e4b7 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 19 Sep 2023 17:07:34 +0000 -Subject: [PATCH 144/196] panic: Mark emergency section in oops +Subject: [PATCH 143/198] panic: Mark emergency section in oops Mark an emergency section beginning with oops_enter() until the end of oops_exit(). In this section, the CPU will not perform @@ -40,5 +40,5 @@ index 147803c3a402..9215df21d8c2 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0145-rcu-Mark-emergency-section-in-rcu-stalls.patch b/buildroot-external/patches/linux/0144-rcu-Mark-emergency-section-in-rcu-stalls.patch similarity index 91% rename from buildroot-external/patches/linux/0145-rcu-Mark-emergency-section-in-rcu-stalls.patch rename to buildroot-external/patches/linux/0144-rcu-Mark-emergency-section-in-rcu-stalls.patch index a59adb7c..fcef7b99 100644 --- a/buildroot-external/patches/linux/0145-rcu-Mark-emergency-section-in-rcu-stalls.patch +++ b/buildroot-external/patches/linux/0144-rcu-Mark-emergency-section-in-rcu-stalls.patch @@ -1,7 +1,7 @@ -From 3a16382d09e9b9e13013ea42c2db38bb44a83b5a Mon Sep 17 00:00:00 2001 +From 76a30badefc83600f0b70968ef637494869a316a Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 11 Sep 2023 15:53:39 +0000 -Subject: [PATCH 145/196] rcu: Mark emergency section in rcu stalls +Subject: [PATCH 144/198] rcu: Mark emergency section in rcu stalls Mark an emergency section within print_other_cpu_stall(), where RCU stall information is printed. In this section, the CPU will @@ -46,5 +46,5 @@ index e09f4f624261..3114830489ef 100644 static void print_cpu_stall(unsigned long gps) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0146-lockdep-Mark-emergency-section-in-lockdep-splats.patch b/buildroot-external/patches/linux/0145-lockdep-Mark-emergency-section-in-lockdep-splats.patch similarity index 91% rename from buildroot-external/patches/linux/0146-lockdep-Mark-emergency-section-in-lockdep-splats.patch rename to buildroot-external/patches/linux/0145-lockdep-Mark-emergency-section-in-lockdep-splats.patch index 2fade0b5..85137f89 100644 --- a/buildroot-external/patches/linux/0146-lockdep-Mark-emergency-section-in-lockdep-splats.patch +++ b/buildroot-external/patches/linux/0145-lockdep-Mark-emergency-section-in-lockdep-splats.patch @@ -1,7 +1,7 @@ -From f02c87d1ed61f3be403169b8f59dd7c916270385 Mon Sep 17 00:00:00 2001 +From d6d66f8f158bef221213adb096d969c3fbae02e3 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 18 Sep 2023 20:27:41 +0000 -Subject: [PATCH 146/196] lockdep: Mark emergency section in lockdep splats +Subject: [PATCH 145/198] lockdep: Mark emergency section in lockdep splats Mark an emergency section within print_usage_bug(), where lockdep bugs are printed. In this section, the CPU will not @@ -46,5 +46,5 @@ index 151bd3de5936..5c21ba41e308 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0147-printk-nbcon-Introduce-printing-kthreads.patch b/buildroot-external/patches/linux/0146-printk-nbcon-Introduce-printing-kthreads.patch similarity index 97% rename from buildroot-external/patches/linux/0147-printk-nbcon-Introduce-printing-kthreads.patch rename to buildroot-external/patches/linux/0146-printk-nbcon-Introduce-printing-kthreads.patch index f5966cc4..317ae450 100644 --- a/buildroot-external/patches/linux/0147-printk-nbcon-Introduce-printing-kthreads.patch +++ b/buildroot-external/patches/linux/0146-printk-nbcon-Introduce-printing-kthreads.patch @@ -1,7 +1,7 @@ -From cf73f93a27ac8a21e5123ed51c1b93dc9d40a139 Mon Sep 17 00:00:00 2001 +From 448e456f0c7e806330cc8ba8f775097fc71817c0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 22 Sep 2023 14:12:21 +0000 -Subject: [PATCH 147/196] printk: nbcon: Introduce printing kthreads +Subject: [PATCH 146/198] printk: nbcon: Introduce printing kthreads Provide the main implementation for running a printer kthread per nbcon console that is takeover/handover aware. @@ -382,10 +382,10 @@ index c3ee245397f6..1becdfc7772c 100644 /* Boot consoles share global printk buffers. */ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 11f26ad708d5..2499482dd08f 100644 +index 4a0df41d32b8..3e307d475d23 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2682,6 +2682,8 @@ void suspend_console(void) +@@ -2688,6 +2688,8 @@ void suspend_console(void) void resume_console(void) { struct console *con; @@ -394,7 +394,7 @@ index 11f26ad708d5..2499482dd08f 100644 if (!console_suspend_enabled) return; -@@ -2698,6 +2700,14 @@ void resume_console(void) +@@ -2704,6 +2706,14 @@ void resume_console(void) */ synchronize_srcu(&console_srcu); @@ -409,7 +409,7 @@ index 11f26ad708d5..2499482dd08f 100644 pr_flush(1000, true); } -@@ -3018,6 +3028,13 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -3024,6 +3034,13 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove u64 printk_seq; bool progress; @@ -423,7 +423,7 @@ index 11f26ad708d5..2499482dd08f 100644 if (!console_is_usable(con, flags)) continue; any_usable = true; -@@ -3313,9 +3330,23 @@ EXPORT_SYMBOL(console_stop); +@@ -3319,9 +3336,23 @@ EXPORT_SYMBOL(console_stop); void console_start(struct console *console) { @@ -448,5 +448,5 @@ index 11f26ad708d5..2499482dd08f 100644 } EXPORT_SYMBOL(console_start); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0148-printk-Atomic-print-in-printk-context-on-shutdown.patch b/buildroot-external/patches/linux/0147-printk-Atomic-print-in-printk-context-on-shutdown.patch similarity index 84% rename from buildroot-external/patches/linux/0148-printk-Atomic-print-in-printk-context-on-shutdown.patch rename to buildroot-external/patches/linux/0147-printk-Atomic-print-in-printk-context-on-shutdown.patch index dbf94e4a..8955a299 100644 --- a/buildroot-external/patches/linux/0148-printk-Atomic-print-in-printk-context-on-shutdown.patch +++ b/buildroot-external/patches/linux/0147-printk-Atomic-print-in-printk-context-on-shutdown.patch @@ -1,7 +1,7 @@ -From 53ad56a5471aad89efca3409e4c8d58e5154cadd Mon Sep 17 00:00:00 2001 +From d0c96cdf97699062113763606dfaac4bddaa9573 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 23 Oct 2023 17:43:48 +0000 -Subject: [PATCH 148/196] printk: Atomic print in printk context on shutdown +Subject: [PATCH 147/198] printk: Atomic print in printk context on shutdown For nbcon consoles, normally the printing is handled by the dedicated console printing threads. However, on shutdown the @@ -18,10 +18,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2499482dd08f..2f27c59224be 100644 +index 3e307d475d23..2a77a4ad5619 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2389,13 +2389,18 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2395,13 +2395,18 @@ asmlinkage int vprintk_emit(int facility, int level, * * - When this CPU is in panic. * @@ -42,5 +42,5 @@ index 2499482dd08f..2f27c59224be 100644 if (do_trylock_unlock) { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0149-printk-nbcon-Add-context-to-console_is_usable.patch b/buildroot-external/patches/linux/0148-printk-nbcon-Add-context-to-console_is_usable.patch similarity index 92% rename from buildroot-external/patches/linux/0149-printk-nbcon-Add-context-to-console_is_usable.patch rename to buildroot-external/patches/linux/0148-printk-nbcon-Add-context-to-console_is_usable.patch index ba555d10..fd3e3d14 100644 --- a/buildroot-external/patches/linux/0149-printk-nbcon-Add-context-to-console_is_usable.patch +++ b/buildroot-external/patches/linux/0148-printk-nbcon-Add-context-to-console_is_usable.patch @@ -1,7 +1,7 @@ -From 0b45148e4ec51843544656ee1973703eb32162f7 Mon Sep 17 00:00:00 2001 +From 39df1f6eb49929f6d1565234ecd082e5f4669139 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 26 Sep 2023 14:43:30 +0000 -Subject: [PATCH 149/196] printk: nbcon: Add context to console_is_usable() +Subject: [PATCH 148/198] printk: nbcon: Add context to console_is_usable() The nbcon consoles have two callbacks to be used for different contexts. In order to determine if an nbcon console is usable, @@ -91,10 +91,10 @@ index 1becdfc7772c..bb071193ab6e 100644 if (nbcon_seq_read(con) >= stop_seq) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 2f27c59224be..f11381f39c98 100644 +index 2a77a4ad5619..3863e3dc3816 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3040,7 +3040,7 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -3046,7 +3046,7 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove if ((flags & CON_NBCON) && con->kthread) continue; @@ -103,7 +103,7 @@ index 2f27c59224be..f11381f39c98 100644 continue; any_usable = true; -@@ -3945,8 +3945,10 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3966,8 +3966,10 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre * that they make forward progress, so only increment * @diff for usable consoles. */ @@ -116,5 +116,5 @@ index 2f27c59224be..f11381f39c98 100644 if (flags & CON_NBCON) { printk_seq = nbcon_seq_read(c); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0150-printk-nbcon-Add-printer-thread-wakeups.patch b/buildroot-external/patches/linux/0149-printk-nbcon-Add-printer-thread-wakeups.patch similarity index 93% rename from buildroot-external/patches/linux/0150-printk-nbcon-Add-printer-thread-wakeups.patch rename to buildroot-external/patches/linux/0149-printk-nbcon-Add-printer-thread-wakeups.patch index 88cf7816..062868ab 100644 --- a/buildroot-external/patches/linux/0150-printk-nbcon-Add-printer-thread-wakeups.patch +++ b/buildroot-external/patches/linux/0149-printk-nbcon-Add-printer-thread-wakeups.patch @@ -1,7 +1,7 @@ -From c643ed9ef56cd3a3b7c97bdd573392c4983b8ee1 Mon Sep 17 00:00:00 2001 +From bf69985496f8cd327b943acfd3db76c4f801faf6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 26 Sep 2023 13:03:52 +0000 -Subject: [PATCH 150/196] printk: nbcon: Add printer thread wakeups +Subject: [PATCH 149/198] printk: nbcon: Add printer thread wakeups Add a function to wakeup the printer threads. Use the new function when: @@ -139,10 +139,10 @@ index bb071193ab6e..337ec7a10095 100644 nbcon_state_set(con, &state); } diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index f11381f39c98..41370f284216 100644 +index 3863e3dc3816..3cdda6dd8941 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2403,6 +2403,8 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2409,6 +2409,8 @@ asmlinkage int vprintk_emit(int facility, int level, } } @@ -151,7 +151,7 @@ index f11381f39c98..41370f284216 100644 if (do_trylock_unlock) { /* * The caller may be holding system-critical or -@@ -2705,6 +2707,10 @@ void resume_console(void) +@@ -2711,6 +2713,10 @@ void resume_console(void) */ synchronize_srcu(&console_srcu); @@ -162,7 +162,7 @@ index f11381f39c98..41370f284216 100644 cookie = console_srcu_read_lock(); for_each_console_srcu(con) { flags = console_srcu_read_flags(con); -@@ -4097,6 +4103,7 @@ void defer_console_output(void) +@@ -4118,6 +4124,7 @@ void defer_console_output(void) void printk_trigger_flush(void) { @@ -171,5 +171,5 @@ index f11381f39c98..41370f284216 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0151-printk-nbcon-Stop-threads-on-shutdown-reboot.patch b/buildroot-external/patches/linux/0150-printk-nbcon-Stop-threads-on-shutdown-reboot.patch similarity index 92% rename from buildroot-external/patches/linux/0151-printk-nbcon-Stop-threads-on-shutdown-reboot.patch rename to buildroot-external/patches/linux/0150-printk-nbcon-Stop-threads-on-shutdown-reboot.patch index b4348926..1b05aede 100644 --- a/buildroot-external/patches/linux/0151-printk-nbcon-Stop-threads-on-shutdown-reboot.patch +++ b/buildroot-external/patches/linux/0150-printk-nbcon-Stop-threads-on-shutdown-reboot.patch @@ -1,7 +1,7 @@ -From 0868a8b36f7b85eb2e53cf094365b34fbdfcb73c Mon Sep 17 00:00:00 2001 +From 7068e42d7897be17b7f7aa39690b73fe1f412e6c Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 26 Sep 2023 13:04:15 +0000 -Subject: [PATCH 151/196] printk: nbcon: Stop threads on shutdown/reboot +Subject: [PATCH 150/198] printk: nbcon: Stop threads on shutdown/reboot Register a syscore_ops shutdown function to stop all threaded printers on shutdown/reboot. This allows printk to transition back @@ -61,5 +61,5 @@ index 337ec7a10095..57ed4968a653 100644 +} +device_initcall(printk_init_ops); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0152-printk-nbcon-Start-printing-threads.patch b/buildroot-external/patches/linux/0151-printk-nbcon-Start-printing-threads.patch similarity index 90% rename from buildroot-external/patches/linux/0152-printk-nbcon-Start-printing-threads.patch rename to buildroot-external/patches/linux/0151-printk-nbcon-Start-printing-threads.patch index 13bd9909..855c9eb2 100644 --- a/buildroot-external/patches/linux/0152-printk-nbcon-Start-printing-threads.patch +++ b/buildroot-external/patches/linux/0151-printk-nbcon-Start-printing-threads.patch @@ -1,7 +1,7 @@ -From 01b3747045371d9acb12427b75bc1d769c9c58c0 Mon Sep 17 00:00:00 2001 +From ee46afa4539a0cc4148e5731ad69ecadf12e02bd Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 5 Dec 2023 14:09:31 +0000 -Subject: [PATCH 152/196] printk: nbcon: Start printing threads +Subject: [PATCH 151/198] printk: nbcon: Start printing threads If there are no boot consoles, the printing threads are started in early_initcall. @@ -94,10 +94,10 @@ index 57ed4968a653..b866d0138fe0 100644 /** diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 41370f284216..f45917a059db 100644 +index 3cdda6dd8941..3722f1a66357 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2389,6 +2389,9 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2395,6 +2395,9 @@ asmlinkage int vprintk_emit(int facility, int level, * * - When this CPU is in panic. * @@ -107,7 +107,7 @@ index 41370f284216..f45917a059db 100644 * - During shutdown, since the printing threads may not get * a chance to print the final messages. * -@@ -2398,6 +2401,7 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2404,6 +2407,7 @@ asmlinkage int vprintk_emit(int facility, int level, * with boot consoles. */ if (is_panic_context || @@ -115,7 +115,7 @@ index 41370f284216..f45917a059db 100644 (system_state > SYSTEM_RUNNING)) { nbcon_atomic_flush_all(); } -@@ -3685,6 +3689,7 @@ EXPORT_SYMBOL(register_console); +@@ -3706,6 +3710,7 @@ EXPORT_SYMBOL(register_console); /* Must be called under console_list_lock(). */ static int unregister_console_locked(struct console *console) { @@ -123,7 +123,7 @@ index 41370f284216..f45917a059db 100644 bool found_legacy_con = false; bool found_nbcon_con = false; bool found_boot_con = false; -@@ -3756,6 +3761,15 @@ static int unregister_console_locked(struct console *console) +@@ -3777,6 +3782,15 @@ static int unregister_console_locked(struct console *console) if (!found_nbcon_con) have_nbcon_console = false; @@ -140,5 +140,5 @@ index 41370f284216..f45917a059db 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0153-proc-Add-nbcon-support-for-proc-consoles.patch b/buildroot-external/patches/linux/0152-proc-Add-nbcon-support-for-proc-consoles.patch similarity index 92% rename from buildroot-external/patches/linux/0153-proc-Add-nbcon-support-for-proc-consoles.patch rename to buildroot-external/patches/linux/0152-proc-Add-nbcon-support-for-proc-consoles.patch index 763e5337..8ac5e4ae 100644 --- a/buildroot-external/patches/linux/0153-proc-Add-nbcon-support-for-proc-consoles.patch +++ b/buildroot-external/patches/linux/0152-proc-Add-nbcon-support-for-proc-consoles.patch @@ -1,7 +1,7 @@ -From 0726caeff4abf5dcdaa82f6b6df9d387422b83b8 Mon Sep 17 00:00:00 2001 +From 4098a127ae4e0b1a5294610d0e55561d9fad9c7b Mon Sep 17 00:00:00 2001 From: John Ogness Date: Tue, 26 Sep 2023 13:31:00 +0000 -Subject: [PATCH 153/196] proc: Add nbcon support for /proc/consoles +Subject: [PATCH 152/198] proc: Add nbcon support for /proc/consoles Update /proc/consoles output to show 'W' if an nbcon write callback is implemented (write_atomic or write_thread). @@ -54,5 +54,5 @@ index e0758fe7936d..2703676549f5 100644 seq_printf(m, " %4d:%d", MAJOR(dev), MINOR(dev)); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0154-tty-sysfs-Add-nbcon-support-for-active.patch b/buildroot-external/patches/linux/0153-tty-sysfs-Add-nbcon-support-for-active.patch similarity index 87% rename from buildroot-external/patches/linux/0154-tty-sysfs-Add-nbcon-support-for-active.patch rename to buildroot-external/patches/linux/0153-tty-sysfs-Add-nbcon-support-for-active.patch index 92577503..fd372a18 100644 --- a/buildroot-external/patches/linux/0154-tty-sysfs-Add-nbcon-support-for-active.patch +++ b/buildroot-external/patches/linux/0153-tty-sysfs-Add-nbcon-support-for-active.patch @@ -1,7 +1,7 @@ -From dcf056002ce53215fe53085bab28bbfa8ecaa98f Mon Sep 17 00:00:00 2001 +From f7c7d363a090290896487e4d0a03f391fb77e16b Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 22 Sep 2023 14:31:09 +0000 -Subject: [PATCH 154/196] tty: sysfs: Add nbcon support for 'active' +Subject: [PATCH 153/198] tty: sysfs: Add nbcon support for 'active' Allow the 'active' attribute to list nbcon consoles. @@ -34,5 +34,5 @@ index 493fc4742895..afa52883c498 100644 continue; cs[i++] = c; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0155-printk-nbcon-Provide-function-to-reacquire-ownership.patch b/buildroot-external/patches/linux/0154-printk-nbcon-Provide-function-to-reacquire-ownership.patch similarity index 96% rename from buildroot-external/patches/linux/0155-printk-nbcon-Provide-function-to-reacquire-ownership.patch rename to buildroot-external/patches/linux/0154-printk-nbcon-Provide-function-to-reacquire-ownership.patch index e1d59869..fe16a6fd 100644 --- a/buildroot-external/patches/linux/0155-printk-nbcon-Provide-function-to-reacquire-ownership.patch +++ b/buildroot-external/patches/linux/0154-printk-nbcon-Provide-function-to-reacquire-ownership.patch @@ -1,7 +1,7 @@ -From c6361018e388b05431e3f03c465861ca58f49e4b Mon Sep 17 00:00:00 2001 +From 9411e7304d4f9f40840d1dc112545e086a6219a3 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 20 Oct 2023 10:01:58 +0000 -Subject: [PATCH 155/196] printk: nbcon: Provide function to reacquire +Subject: [PATCH 154/198] printk: nbcon: Provide function to reacquire ownership Contexts may become nbcon owners for various reasons, not just @@ -95,5 +95,5 @@ index b866d0138fe0..f843df54ee82 100644 * nbcon_emit_next_record - Emit a record in the acquired context * @wctxt: The write context that will be handed to the write function -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0156-serial-core-Provide-low-level-functions-to-port-lock.patch b/buildroot-external/patches/linux/0155-serial-core-Provide-low-level-functions-to-port-lock.patch similarity index 90% rename from buildroot-external/patches/linux/0156-serial-core-Provide-low-level-functions-to-port-lock.patch rename to buildroot-external/patches/linux/0155-serial-core-Provide-low-level-functions-to-port-lock.patch index be3da0e3..a66df880 100644 --- a/buildroot-external/patches/linux/0156-serial-core-Provide-low-level-functions-to-port-lock.patch +++ b/buildroot-external/patches/linux/0155-serial-core-Provide-low-level-functions-to-port-lock.patch @@ -1,7 +1,7 @@ -From 990d46212f1983a7929a9074ab054cf32db9f854 Mon Sep 17 00:00:00 2001 +From fc9b54363f1efc19c0072c949c81085f0ce5e3e8 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 11 Dec 2023 09:19:18 +0000 -Subject: [PATCH 156/196] serial: core: Provide low-level functions to port +Subject: [PATCH 155/198] serial: core: Provide low-level functions to port lock The nbcon console's driver_enter() and driver_exit() callbacks need @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 12 insertions(+) diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h -index 90f4a11d24eb..e9e774f63db8 100644 +index 150dcf1ea332..e5947b13f2f1 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -681,6 +681,18 @@ static inline void uart_port_unlock_irqrestore(struct uart_port *up, unsigned lo @@ -44,5 +44,5 @@ index 90f4a11d24eb..e9e774f63db8 100644 { return up->serial_in(up, offset); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0157-serial-8250-Switch-to-nbcon-console.patch b/buildroot-external/patches/linux/0156-serial-8250-Switch-to-nbcon-console.patch similarity index 95% rename from buildroot-external/patches/linux/0157-serial-8250-Switch-to-nbcon-console.patch rename to buildroot-external/patches/linux/0156-serial-8250-Switch-to-nbcon-console.patch index 97626ab8..aba6d1e6 100644 --- a/buildroot-external/patches/linux/0157-serial-8250-Switch-to-nbcon-console.patch +++ b/buildroot-external/patches/linux/0156-serial-8250-Switch-to-nbcon-console.patch @@ -1,7 +1,7 @@ -From c95f552c69b6c87e6a1d40214f4a7a40cbe88cec Mon Sep 17 00:00:00 2001 +From cab3c15b213a30951b92b53169f35657c243bc22 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Wed, 13 Sep 2023 15:30:36 +0000 -Subject: [PATCH 157/196] serial: 8250: Switch to nbcon console +Subject: [PATCH 156/198] serial: 8250: Switch to nbcon console Implement the necessary callbacks to switch the 8250 console driver to perform as an nbcon console. @@ -93,7 +93,7 @@ index 904e319e6b4a..30434718fad8 100644 .data = &serial8250_reg, }; diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 5b57254ae975..53ae0db72999 100644 +index cba5a1b1030f..bc3ab612aec5 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -557,6 +557,11 @@ static int serial8250_em485_init(struct uart_8250_port *p) @@ -133,7 +133,7 @@ index 5b57254ae975..53ae0db72999 100644 #ifdef CONFIG_SERIAL_8250_RSA /* * Attempts to turn on the RSA FIFO. Returns zero on failure. -@@ -3328,6 +3342,11 @@ static void serial8250_console_putchar(struct uart_port *port, unsigned char ch) +@@ -3322,6 +3336,11 @@ static void serial8250_console_putchar(struct uart_port *port, unsigned char ch) wait_for_xmitr(up, UART_LSR_THRE); serial_port_out(port, UART_TX, ch); @@ -145,7 +145,7 @@ index 5b57254ae975..53ae0db72999 100644 } /* -@@ -3356,6 +3375,7 @@ static void serial8250_console_restore(struct uart_8250_port *up) +@@ -3350,6 +3369,7 @@ static void serial8250_console_restore(struct uart_8250_port *up) serial8250_out_MCR(up, up->mcr | UART_MCR_DTR | UART_MCR_RTS); } @@ -153,7 +153,7 @@ index 5b57254ae975..53ae0db72999 100644 /* * Print a string to the serial port using the device FIFO * -@@ -3414,7 +3434,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3408,7 +3428,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, * First save the IER then disable the interrupts */ ier = serial_port_in(port, UART_IER); @@ -162,7 +162,7 @@ index 5b57254ae975..53ae0db72999 100644 /* check scratch reg to see if port powered off during system sleep */ if (up->canary && (up->canary != serial_port_in(port, UART_SCR))) { -@@ -3480,6 +3500,135 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3474,6 +3494,135 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (locked) uart_port_unlock_irqrestore(port, flags); } @@ -298,7 +298,7 @@ index 5b57254ae975..53ae0db72999 100644 static unsigned int probe_baud(struct uart_port *port) { -@@ -3498,6 +3647,7 @@ static unsigned int probe_baud(struct uart_port *port) +@@ -3492,6 +3641,7 @@ static unsigned int probe_baud(struct uart_port *port) int serial8250_console_setup(struct uart_port *port, char *options, bool probe) { @@ -306,7 +306,7 @@ index 5b57254ae975..53ae0db72999 100644 int baud = 9600; int bits = 8; int parity = 'n'; -@@ -3507,6 +3657,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) +@@ -3501,6 +3651,8 @@ int serial8250_console_setup(struct uart_port *port, char *options, bool probe) if (!port->iobase && !port->membase) return -ENODEV; @@ -340,5 +340,5 @@ index be65de65fe61..ec46e3b49ee9 100644 int serial8250_console_exit(struct uart_port *port); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0158-printk-Add-kthread-for-all-legacy-consoles.patch b/buildroot-external/patches/linux/0157-printk-Add-kthread-for-all-legacy-consoles.patch similarity index 92% rename from buildroot-external/patches/linux/0158-printk-Add-kthread-for-all-legacy-consoles.patch rename to buildroot-external/patches/linux/0157-printk-Add-kthread-for-all-legacy-consoles.patch index 67ef738b..9ecaafec 100644 --- a/buildroot-external/patches/linux/0158-printk-Add-kthread-for-all-legacy-consoles.patch +++ b/buildroot-external/patches/linux/0157-printk-Add-kthread-for-all-legacy-consoles.patch @@ -1,7 +1,7 @@ -From b9cf8f7faa912648c028d16b9f409157486f050e Mon Sep 17 00:00:00 2001 +From 7fabc517cee20c37f3b89406d8fcfec2e4f7f1ce Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 22 Sep 2023 17:35:04 +0000 -Subject: [PATCH 158/196] printk: Add kthread for all legacy consoles +Subject: [PATCH 157/198] printk: Add kthread for all legacy consoles The write callback of legacy consoles make use of spinlocks. This is not permitted with PREEMPT_RT in atomic contexts. @@ -78,7 +78,7 @@ index f843df54ee82..1b1b585b1675 100644 return 0; } diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index f45917a059db..afc044632dec 100644 +index 3722f1a66357..4f1ca9931ddb 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -487,6 +487,9 @@ bool have_boot_console; @@ -91,7 +91,7 @@ index f45917a059db..afc044632dec 100644 /* All 3 protected by @syslog_lock. */ /* the next printk record to read by syslog(READ) or /proc/kmsg */ static u64 syslog_seq; -@@ -2345,7 +2348,8 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -2351,7 +2354,8 @@ asmlinkage int vprintk_emit(int facility, int level, const struct dev_printk_info *dev_info, const char *fmt, va_list args) { @@ -101,7 +101,7 @@ index f45917a059db..afc044632dec 100644 int printed_len; /* Suppress unimportant messages after panic happens */ -@@ -2473,6 +2477,14 @@ EXPORT_SYMBOL(_printk); +@@ -2479,6 +2483,14 @@ EXPORT_SYMBOL(_printk); static bool pr_flush(int timeout_ms, bool reset_on_progress); static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progress); @@ -116,7 +116,7 @@ index f45917a059db..afc044632dec 100644 #else /* CONFIG_PRINTK */ #define printk_time false -@@ -2486,6 +2498,8 @@ static u64 syslog_seq; +@@ -2492,6 +2504,8 @@ static u64 syslog_seq; static bool pr_flush(int timeout_ms, bool reset_on_progress) { return true; } static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progress) { return true; } @@ -125,7 +125,7 @@ index f45917a059db..afc044632dec 100644 #endif /* CONFIG_PRINTK */ #ifdef CONFIG_EARLY_PRINTK -@@ -2723,6 +2737,8 @@ void resume_console(void) +@@ -2729,6 +2743,8 @@ void resume_console(void) } console_srcu_read_unlock(cookie); @@ -134,7 +134,7 @@ index f45917a059db..afc044632dec 100644 pr_flush(1000, true); } -@@ -2737,7 +2753,8 @@ void resume_console(void) +@@ -2743,7 +2759,8 @@ void resume_console(void) */ static int console_cpu_notify(unsigned int cpu) { @@ -144,7 +144,7 @@ index f45917a059db..afc044632dec 100644 /* If trylock fails, someone else is doing the printing */ if (console_trylock()) console_unlock(); -@@ -2962,31 +2979,43 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co +@@ -2968,31 +2985,43 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co con->dropped = 0; } @@ -208,7 +208,7 @@ index f45917a059db..afc044632dec 100644 skip: return true; } -@@ -3096,19 +3125,7 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -3102,19 +3131,7 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove return false; } @@ -229,7 +229,7 @@ index f45917a059db..afc044632dec 100644 { bool do_cond_resched; bool handover; -@@ -3152,6 +3169,32 @@ void console_unlock(void) +@@ -3158,6 +3175,32 @@ void console_unlock(void) */ } while (prb_read_valid(prb, next_seq, NULL) && console_trylock()); } @@ -262,7 +262,7 @@ index f45917a059db..afc044632dec 100644 EXPORT_SYMBOL(console_unlock); /** -@@ -3361,11 +3404,106 @@ void console_start(struct console *console) +@@ -3367,11 +3410,106 @@ void console_start(struct console *console) if (flags & CON_NBCON) nbcon_kthread_wake(console); @@ -369,7 +369,7 @@ index f45917a059db..afc044632dec 100644 static int __read_mostly keep_bootcon; static int __init keep_bootcon_setup(char *str) -@@ -3632,6 +3770,7 @@ void register_console(struct console *newcon) +@@ -3653,6 +3791,7 @@ void register_console(struct console *newcon) nbcon_init(newcon); } else { have_legacy_console = true; @@ -377,7 +377,7 @@ index f45917a059db..afc044632dec 100644 } if (newcon->flags & CON_BOOT) -@@ -3770,6 +3909,13 @@ static int unregister_console_locked(struct console *console) +@@ -3791,6 +3930,13 @@ static int unregister_console_locked(struct console *console) nbcon_kthread_create(c); } @@ -391,7 +391,7 @@ index f45917a059db..afc044632dec 100644 return res; } -@@ -3929,8 +4075,12 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre +@@ -3950,8 +4096,12 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre seq = prb_next_reserve_seq(prb); @@ -406,7 +406,7 @@ index f45917a059db..afc044632dec 100644 console_lock(); console_unlock(); } -@@ -4038,9 +4188,16 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) +@@ -4059,9 +4209,16 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) int pending = this_cpu_xchg(printk_pending, 0); if (pending & PRINTK_PENDING_OUTPUT) { @@ -427,5 +427,5 @@ index f45917a059db..afc044632dec 100644 if (pending & PRINTK_PENDING_WAKEUP) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0159-serial-8250-revert-drop-lockdep-annotation-from-seri.patch b/buildroot-external/patches/linux/0158-serial-8250-revert-drop-lockdep-annotation-from-seri.patch similarity index 85% rename from buildroot-external/patches/linux/0159-serial-8250-revert-drop-lockdep-annotation-from-seri.patch rename to buildroot-external/patches/linux/0158-serial-8250-revert-drop-lockdep-annotation-from-seri.patch index d926fbbc..09019d3a 100644 --- a/buildroot-external/patches/linux/0159-serial-8250-revert-drop-lockdep-annotation-from-seri.patch +++ b/buildroot-external/patches/linux/0158-serial-8250-revert-drop-lockdep-annotation-from-seri.patch @@ -1,7 +1,7 @@ -From 25ee8c8fee9fe3c8e6b415e75457f1faf687efbe Mon Sep 17 00:00:00 2001 +From bda156945cec336b52730e40c4f8ee32a2e8230c Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 2 Oct 2023 15:30:43 +0000 -Subject: [PATCH 159/196] serial: 8250: revert "drop lockdep annotation from +Subject: [PATCH 158/198] serial: 8250: revert "drop lockdep annotation from serial8250_clear_IER()" The 8250 driver no longer depends on @oops_in_progress and @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 3 insertions(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 53ae0db72999..437a7d3d34cd 100644 +index bc3ab612aec5..2d4e775cd7cb 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -728,6 +728,9 @@ static void __serial8250_clear_IER(struct uart_8250_port *up) @@ -30,5 +30,5 @@ index 53ae0db72999..437a7d3d34cd 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0160-printk-Avoid-false-positive-lockdep-report-for-legac.patch b/buildroot-external/patches/linux/0159-printk-Avoid-false-positive-lockdep-report-for-legac.patch similarity index 82% rename from buildroot-external/patches/linux/0160-printk-Avoid-false-positive-lockdep-report-for-legac.patch rename to buildroot-external/patches/linux/0159-printk-Avoid-false-positive-lockdep-report-for-legac.patch index a53d0014..9ae717ba 100644 --- a/buildroot-external/patches/linux/0160-printk-Avoid-false-positive-lockdep-report-for-legac.patch +++ b/buildroot-external/patches/linux/0159-printk-Avoid-false-positive-lockdep-report-for-legac.patch @@ -1,7 +1,7 @@ -From 5d0e7e1ff2da6bba71ee818fe5276232763befdf Mon Sep 17 00:00:00 2001 +From 1ab4f7f438634f482b13af00d54ec09cc73d318c Mon Sep 17 00:00:00 2001 From: John Ogness Date: Mon, 11 Dec 2023 09:34:16 +0000 -Subject: [PATCH 160/196] printk: Avoid false positive lockdep report for +Subject: [PATCH 159/198] printk: Avoid false positive lockdep report for legacy driver. printk may invoke the legacy console driver from atomic context. This leads to @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index afc044632dec..ddf79752c80c 100644 +index 4f1ca9931ddb..249576a8c351 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -2817,6 +2817,8 @@ static void __console_unlock(void) +@@ -2823,6 +2823,8 @@ static void __console_unlock(void) up_console_sem(); } @@ -34,7 +34,7 @@ index afc044632dec..ddf79752c80c 100644 #ifdef CONFIG_PRINTK /* -@@ -2985,7 +2987,7 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co +@@ -2991,7 +2993,7 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co /* * On PREEMPT_RT this function is either in a thread or * panic context. So there is no need for concern about @@ -43,7 +43,7 @@ index afc044632dec..ddf79752c80c 100644 */ con->write(con, outbuf, pmsg.outbuf_len); -@@ -3007,7 +3009,9 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co +@@ -3013,7 +3015,9 @@ static bool console_emit_next_record(struct console *con, bool *handover, int co /* Do not trace print latency. */ stop_critical_timings(); @@ -53,7 +53,7 @@ index afc044632dec..ddf79752c80c 100644 start_critical_timings(); -@@ -3084,7 +3088,10 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove +@@ -3090,7 +3094,10 @@ static bool console_flush_all(bool do_cond_resched, u64 *next_seq, bool *handove any_usable = true; if (flags & CON_NBCON) { @@ -65,5 +65,5 @@ index afc044632dec..ddf79752c80c 100644 printk_seq = nbcon_seq_read(con); } else { -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0161-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch b/buildroot-external/patches/linux/0160-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch similarity index 93% rename from buildroot-external/patches/linux/0161-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch rename to buildroot-external/patches/linux/0160-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch index ed74af8f..cdf70f10 100644 --- a/buildroot-external/patches/linux/0161-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch +++ b/buildroot-external/patches/linux/0160-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch @@ -1,7 +1,7 @@ -From 170a082fa9312b517234ee6b655f7cf63cca0226 Mon Sep 17 00:00:00 2001 +From d0de3a34de151ae691065f899d67909b2702f499 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 -Subject: [PATCH 161/196] drm/i915: Use preempt_disable/enable_rt() where +Subject: [PATCH 160/198] drm/i915: Use preempt_disable/enable_rt() where recommended Mario Kleiner suggest in commit @@ -57,5 +57,5 @@ index f5659ebd08eb..5b6d2f55528d 100644 spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0162-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch b/buildroot-external/patches/linux/0161-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch similarity index 95% rename from buildroot-external/patches/linux/0162-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch rename to buildroot-external/patches/linux/0161-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch index 09f811fb..548da244 100644 --- a/buildroot-external/patches/linux/0162-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch +++ b/buildroot-external/patches/linux/0161-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch @@ -1,7 +1,7 @@ -From 4bbdc10c902ac201b44e2994015ea6b4a57599ca Mon Sep 17 00:00:00 2001 +From 9d9bf260dbe981fd236ed6325dd233880d507db3 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 -Subject: [PATCH 162/196] drm/i915: Don't disable interrupts on PREEMPT_RT +Subject: [PATCH 161/198] drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates Commit @@ -86,5 +86,5 @@ index 182c6dd64f47..e7083689cf4d 100644 if (intel_vgpu_active(dev_priv)) return; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0163-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch b/buildroot-external/patches/linux/0162-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch similarity index 91% rename from buildroot-external/patches/linux/0163-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch rename to buildroot-external/patches/linux/0162-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch index 39476905..dec98b5f 100644 --- a/buildroot-external/patches/linux/0163-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch +++ b/buildroot-external/patches/linux/0162-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch @@ -1,7 +1,7 @@ -From d62d3b98b6a04765ef046913bea7b60bc6c68221 Mon Sep 17 00:00:00 2001 +From 79959ddf44cdd6c34c726f04ef89114bb574f116 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 25 Oct 2021 15:05:18 +0200 -Subject: [PATCH 163/196] drm/i915: Don't check for atomic context on +Subject: [PATCH 162/198] drm/i915: Don't check for atomic context on PREEMPT_RT The !in_atomic() check in _wait_for_atomic() triggers on PREEMPT_RT @@ -32,5 +32,5 @@ index c61066498bf2..48e19e55d6b0 100644 #else # define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) do { } while (0) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0164-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch b/buildroot-external/patches/linux/0163-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch similarity index 92% rename from buildroot-external/patches/linux/0164-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch rename to buildroot-external/patches/linux/0163-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch index fb16ac1b..214659bf 100644 --- a/buildroot-external/patches/linux/0164-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch +++ b/buildroot-external/patches/linux/0163-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From b84277c1e918e1bcc52ed45381028c13ed02e73b Mon Sep 17 00:00:00 2001 +From 7256a124ef014c1dde90467472be044a8270ffcc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 09:52:20 +0100 -Subject: [PATCH 164/196] drm/i915: Disable tracing points on PREEMPT_RT +Subject: [PATCH 163/198] drm/i915: Disable tracing points on PREEMPT_RT Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 @@ -46,5 +46,5 @@ index ce1cbee1b39d..c54653cf72c9 100644 #include #include -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0165-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/buildroot-external/patches/linux/0164-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch similarity index 89% rename from buildroot-external/patches/linux/0165-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch rename to buildroot-external/patches/linux/0164-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index 9229dbd5..761a61ff 100644 --- a/buildroot-external/patches/linux/0165-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/buildroot-external/patches/linux/0164-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,7 +1,7 @@ -From a128ac5efc4b8ab92e9b17e8f5e8e545fcc2dab0 Mon Sep 17 00:00:00 2001 +From 084ec58767ea49c88a028a72abf3c9f12e9ffee3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 19 Dec 2018 10:47:02 +0100 -Subject: [PATCH 165/196] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with +Subject: [PATCH 164/198] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE The order of the header files is important. If this header file is @@ -30,5 +30,5 @@ index c54653cf72c9..3c51620d011b 100644 TP_PROTO(struct i915_request *rq), TP_ARGS(rq) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0166-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch b/buildroot-external/patches/linux/0165-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch similarity index 92% rename from buildroot-external/patches/linux/0166-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch rename to buildroot-external/patches/linux/0165-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch index 05d6f4c0..43be92bf 100644 --- a/buildroot-external/patches/linux/0166-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch +++ b/buildroot-external/patches/linux/0165-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch @@ -1,7 +1,7 @@ -From d49339cc332ba068ee8e64ce263eab1a92e50699 Mon Sep 17 00:00:00 2001 +From 144a70e2fdace11a6222e24061b96cbceeef721c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 8 Sep 2021 17:18:00 +0200 -Subject: [PATCH 166/196] drm/i915/gt: Queue and wait for the irq_work item. +Subject: [PATCH 165/198] drm/i915/gt: Queue and wait for the irq_work item. Disabling interrupts and invoking the irq_work function directly breaks on PREEMPT_RT. @@ -43,5 +43,5 @@ index ecc990ec1b95..8d04b10681f0 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0167-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch b/buildroot-external/patches/linux/0166-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch similarity index 95% rename from buildroot-external/patches/linux/0167-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch rename to buildroot-external/patches/linux/0166-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch index fdba6c9b..70af0970 100644 --- a/buildroot-external/patches/linux/0167-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch +++ b/buildroot-external/patches/linux/0166-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch @@ -1,7 +1,7 @@ -From 9f68e075f06a5414e307a31628a22bc34be4e6db Mon Sep 17 00:00:00 2001 +From 370e851bc2dcc17cb71848872dc4f532f6de2671 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 8 Sep 2021 19:03:41 +0200 -Subject: [PATCH 167/196] drm/i915/gt: Use spin_lock_irq() instead of +Subject: [PATCH 166/198] drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() + spin_lock() execlists_dequeue() is invoked from a function which uses @@ -27,7 +27,7 @@ Reviewed-by: Maarten Lankhorst 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c -index 3292524469d5..00cb9fd91f41 100644 +index 5a720e252312..153f3e33d2ac 100644 --- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c +++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c @@ -1303,7 +1303,7 @@ static void execlists_dequeue(struct intel_engine_cs *engine) @@ -90,5 +90,5 @@ index 3292524469d5..00cb9fd91f41 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0168-drm-i915-Drop-the-irqs_disabled-check.patch b/buildroot-external/patches/linux/0167-drm-i915-Drop-the-irqs_disabled-check.patch similarity index 90% rename from buildroot-external/patches/linux/0168-drm-i915-Drop-the-irqs_disabled-check.patch rename to buildroot-external/patches/linux/0167-drm-i915-Drop-the-irqs_disabled-check.patch index 78118d13..a1bbca69 100644 --- a/buildroot-external/patches/linux/0168-drm-i915-Drop-the-irqs_disabled-check.patch +++ b/buildroot-external/patches/linux/0167-drm-i915-Drop-the-irqs_disabled-check.patch @@ -1,7 +1,7 @@ -From a690c1a7ad702b71702bc4c0a47fe2c536dce089 Mon Sep 17 00:00:00 2001 +From c3b6a08d6c47366e5559884936cc7918d533583b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 1 Oct 2021 20:01:03 +0200 -Subject: [PATCH 168/196] drm/i915: Drop the irqs_disabled() check +Subject: [PATCH 167/198] drm/i915: Drop the irqs_disabled() check The !irqs_disabled() check triggers on PREEMPT_RT even with i915_sched_engine::lock acquired. The reason is the lock is transformed @@ -40,5 +40,5 @@ index f59081066a19..014d02029a41 100644 /* -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0169-drm-i915-Do-not-disable-preemption-for-resets.patch b/buildroot-external/patches/linux/0168-drm-i915-Do-not-disable-preemption-for-resets.patch similarity index 96% rename from buildroot-external/patches/linux/0169-drm-i915-Do-not-disable-preemption-for-resets.patch rename to buildroot-external/patches/linux/0168-drm-i915-Do-not-disable-preemption-for-resets.patch index 5760c8d2..fb0c561b 100644 --- a/buildroot-external/patches/linux/0169-drm-i915-Do-not-disable-preemption-for-resets.patch +++ b/buildroot-external/patches/linux/0168-drm-i915-Do-not-disable-preemption-for-resets.patch @@ -1,7 +1,7 @@ -From 1bbe858b59a97744b39f0f55401229abd40cb708 Mon Sep 17 00:00:00 2001 +From e1d033bc1a53c826312eb651d031d9c0d3ab7efe Mon Sep 17 00:00:00 2001 From: Tvrtko Ursulin Date: Wed, 5 Jul 2023 10:30:25 +0100 -Subject: [PATCH 169/196] drm/i915: Do not disable preemption for resets +Subject: [PATCH 168/198] drm/i915: Do not disable preemption for resets Commit ade8a0f59844 ("drm/i915: Make all GPU resets atomic") added a preempt disable section over the hardware reset callback to prepare the @@ -100,5 +100,5 @@ index 5fa57a34cf4b..4d65c374d4d7 100644 wa_14015076503_end(gt, reset_mask); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0170-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch b/buildroot-external/patches/linux/0169-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch similarity index 89% rename from buildroot-external/patches/linux/0170-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch rename to buildroot-external/patches/linux/0169-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch index 99a850ba..416ade2a 100644 --- a/buildroot-external/patches/linux/0170-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch +++ b/buildroot-external/patches/linux/0169-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.patch @@ -1,7 +1,7 @@ -From 2ad53732d326182891e29f958f9e73a3f1d41e5b Mon Sep 17 00:00:00 2001 +From 23608382476c7bdfaa7489b1bc48f46c50506b85 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 3 Oct 2023 21:37:21 +0200 -Subject: [PATCH 170/196] drm/i915/guc: Consider also RCU depth in busy loop. +Subject: [PATCH 169/198] drm/i915/guc: Consider also RCU depth in busy loop. intel_guc_send_busy_loop() looks at in_atomic() and irqs_disabled() to decide if it should busy-spin while waiting or if it may sleep. @@ -30,5 +30,5 @@ index 8dc291ff0093..5b8d084c9c58 100644 /* * FIXME: Have caller pass in if we are in an atomic context to avoid -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0171-Revert-drm-i915-Depend-on-PREEMPT_RT.patch b/buildroot-external/patches/linux/0170-Revert-drm-i915-Depend-on-PREEMPT_RT.patch similarity index 85% rename from buildroot-external/patches/linux/0171-Revert-drm-i915-Depend-on-PREEMPT_RT.patch rename to buildroot-external/patches/linux/0170-Revert-drm-i915-Depend-on-PREEMPT_RT.patch index 577f979e..436d9819 100644 --- a/buildroot-external/patches/linux/0171-Revert-drm-i915-Depend-on-PREEMPT_RT.patch +++ b/buildroot-external/patches/linux/0170-Revert-drm-i915-Depend-on-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From 08b4cff9b5c36cf0a66e9d6699116574dfbeb263 Mon Sep 17 00:00:00 2001 +From 2f9c3590fa5fdee1a3bd8807af5d0ec209697cbd Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Feb 2022 17:59:14 +0100 -Subject: [PATCH 171/196] Revert "drm/i915: Depend on !PREEMPT_RT." +Subject: [PATCH 170/198] Revert "drm/i915: Depend on !PREEMPT_RT." Once the known issues are addressed, it should be safe to enable the driver. @@ -24,5 +24,5 @@ index ce397a8797f7..98c3f532822d 100644 select INTERVAL_TREE # we need shmfs for the swappable backing store, and in particular -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0172-sched-define-TIF_ALLOW_RESCHED.patch b/buildroot-external/patches/linux/0171-sched-define-TIF_ALLOW_RESCHED.patch similarity index 97% rename from buildroot-external/patches/linux/0172-sched-define-TIF_ALLOW_RESCHED.patch rename to buildroot-external/patches/linux/0171-sched-define-TIF_ALLOW_RESCHED.patch index d1483605..0d7ae35e 100644 --- a/buildroot-external/patches/linux/0172-sched-define-TIF_ALLOW_RESCHED.patch +++ b/buildroot-external/patches/linux/0171-sched-define-TIF_ALLOW_RESCHED.patch @@ -1,7 +1,7 @@ -From ac0c43e96de30b9db6d2ce6d423d82cd52383ebe Mon Sep 17 00:00:00 2001 +From 48ba2780e169946340d635ea33db2807d0a9d17e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 23 Sep 2023 03:11:05 +0200 -Subject: [PATCH 172/196] sched: define TIF_ALLOW_RESCHED +Subject: [PATCH 171/198] sched: define TIF_ALLOW_RESCHED On Fri, Sep 22 2023 at 00:55, Thomas Gleixner wrote: > On Thu, Sep 21 2023 at 09:00, Linus Torvalds wrote: @@ -121,7 +121,7 @@ Signed-off-by: Sebastian Andrzej Siewior 20 files changed, 171 insertions(+), 56 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 1b445e289190..00b32f493860 100644 +index f774dc9f97f5..a3eeac811e2e 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -272,6 +272,7 @@ config X86 @@ -157,7 +157,7 @@ index d63b02940747..1ff38ebbd588 100644 #define _TIF_SSBD (1 << TIF_SSBD) #define _TIF_SPEC_IB (1 << TIF_SPEC_IB) diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c -index 55437f5e0c3a..7fc47007b926 100644 +index bd6a7857ce05..d45dfd10b636 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -108,7 +108,7 @@ static const struct dmi_system_id processor_power_dmi_table[] = { @@ -402,10 +402,10 @@ index c2f1fd95a821..0f3d4c2a41cb 100644 select PREEMPT_BUILD default y if HAVE_PREEMPT_DYNAMIC_CALL diff --git a/kernel/entry/common.c b/kernel/entry/common.c -index d7ee4bc3f2ba..c1f706038637 100644 +index 5ff4f1cd3644..fd42f0b17dec 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c -@@ -155,7 +155,7 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, +@@ -161,7 +161,7 @@ static unsigned long exit_to_user_mode_loop(struct pt_regs *regs, local_irq_enable_exit_to_user(ti_work); @@ -414,7 +414,7 @@ index d7ee4bc3f2ba..c1f706038637 100644 schedule(); if (ti_work & _TIF_UPROBE) -@@ -385,7 +385,7 @@ void raw_irqentry_exit_cond_resched(void) +@@ -391,7 +391,7 @@ void raw_irqentry_exit_cond_resched(void) rcu_irq_exit_check_preempt(); if (IS_ENABLED(CONFIG_DEBUG_ENTRY)) WARN_ON_ONCE(!on_thread_stack()); @@ -437,7 +437,7 @@ index 2e0f75bcb7fd..d952fa5ee880 100644 if (ti_work & _TIF_NOTIFY_RESUME) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 7134598e3284..7609a0a40569 100644 +index c731c53d6bfd..89bf86d3351d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -898,14 +898,15 @@ static inline void hrtick_rq_init(struct rq *rq) @@ -583,7 +583,7 @@ index 4c3d0d9f3db6..63e19b89c8c3 100644 } late_initcall(sched_init_debug); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index d336af9cba13..cf1584dd9c2e 100644 +index 69fe62126a28..d449f315def7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1016,8 +1016,10 @@ static void clear_buddies(struct cfs_rq *cfs_rq, struct sched_entity *se); @@ -696,7 +696,7 @@ index d336af9cba13..cf1584dd9c2e 100644 return; } hrtick_start(rq, delta); -@@ -8175,7 +8191,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ +@@ -8181,7 +8197,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ * prevents us from potentially nominating it as a false LAST_BUDDY * below. */ @@ -705,7 +705,7 @@ index d336af9cba13..cf1584dd9c2e 100644 return; /* Idle tasks are by definition preempted by non-idle tasks. */ -@@ -8217,7 +8233,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ +@@ -8223,7 +8239,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ return; preempt: @@ -714,7 +714,7 @@ index d336af9cba13..cf1584dd9c2e 100644 } #ifdef CONFIG_SMP -@@ -12374,7 +12390,7 @@ static inline void task_tick_core(struct rq *rq, struct task_struct *curr) +@@ -12380,7 +12396,7 @@ static inline void task_tick_core(struct rq *rq, struct task_struct *curr) */ if (rq->core->core_forceidle_count && rq->cfs.nr_running == 1 && __entity_slice_used(&curr->se, MIN_NR_TASKS_DURING_FORCEIDLE)) @@ -723,7 +723,7 @@ index d336af9cba13..cf1584dd9c2e 100644 } /* -@@ -12539,7 +12555,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) +@@ -12545,7 +12561,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) */ if (task_current(rq, p)) { if (p->prio > oldprio) @@ -769,7 +769,7 @@ index 04846272409c..c4307934af6b 100644 extern struct rt_bandwidth def_rt_bandwidth; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 82e28777cacf..552cd31bd879 100644 +index fd398af792b4..03653fcb3ee3 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2708,6 +2708,8 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) @@ -818,5 +818,5 @@ index 3b7d3e9eb6ea..5a4fefbc0856 100644 need_resched = 'p'; break; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0173-arm-Disable-jump-label-on-PREEMPT_RT.patch b/buildroot-external/patches/linux/0172-arm-Disable-jump-label-on-PREEMPT_RT.patch similarity index 89% rename from buildroot-external/patches/linux/0173-arm-Disable-jump-label-on-PREEMPT_RT.patch rename to buildroot-external/patches/linux/0172-arm-Disable-jump-label-on-PREEMPT_RT.patch index c8070e3c..032c1e25 100644 --- a/buildroot-external/patches/linux/0173-arm-Disable-jump-label-on-PREEMPT_RT.patch +++ b/buildroot-external/patches/linux/0172-arm-Disable-jump-label-on-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From 61f924afb0bcacee3f4b11391418fd3e6b84ca60 Mon Sep 17 00:00:00 2001 +From e6835cb334d3ebdd581f4eb659baa65f71c4b019 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Jul 2015 17:14:48 +0200 -Subject: [PATCH 173/196] arm: Disable jump-label on PREEMPT_RT. +Subject: [PATCH 172/198] arm: Disable jump-label on PREEMPT_RT. jump-labels are used to efficiently switch between two possible code paths. To achieve this, stop_machine() is used to keep the CPU in a @@ -24,7 +24,7 @@ Link: https://lkml.kernel.org/r/20220613182447.112191-2-bigeasy@linutronix.de 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 9557808e8937..2257e98d4df3 100644 +index 57c0448d017a..dea47ba6576b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -73,7 +73,7 @@ config ARM @@ -37,5 +37,5 @@ index 9557808e8937..2257e98d4df3 100644 select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0174-ARM-enable-irq-in-translation-section-permission-fau.patch b/buildroot-external/patches/linux/0173-ARM-enable-irq-in-translation-section-permission-fau.patch similarity index 96% rename from buildroot-external/patches/linux/0174-ARM-enable-irq-in-translation-section-permission-fau.patch rename to buildroot-external/patches/linux/0173-ARM-enable-irq-in-translation-section-permission-fau.patch index c47a665f..a92c4859 100644 --- a/buildroot-external/patches/linux/0174-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/buildroot-external/patches/linux/0173-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,7 +1,7 @@ -From 6b9e960c171b6084b270bbb7f51c37738c31a36b Mon Sep 17 00:00:00 2001 +From de162c5fadc5577772a1bd26ef572c730fe28cc8 Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 -Subject: [PATCH 174/196] ARM: enable irq in translation/section permission +Subject: [PATCH 173/198] ARM: enable irq in translation/section permission fault handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -92,5 +92,5 @@ index fef62e4a9edd..622a30243f4a 100644 return 0; } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0175-tty-serial-omap-Make-the-locking-RT-aware.patch b/buildroot-external/patches/linux/0174-tty-serial-omap-Make-the-locking-RT-aware.patch similarity index 90% rename from buildroot-external/patches/linux/0175-tty-serial-omap-Make-the-locking-RT-aware.patch rename to buildroot-external/patches/linux/0174-tty-serial-omap-Make-the-locking-RT-aware.patch index 0ce45a94..e7fda1c7 100644 --- a/buildroot-external/patches/linux/0175-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/buildroot-external/patches/linux/0174-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,7 +1,7 @@ -From 2f7c4717b62e4fd09c538c74641c07bd929e1f12 Mon Sep 17 00:00:00 2001 +From 95f8b7d8e65a028c86c1aef3c0f7507772471206 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 175/196] tty/serial/omap: Make the locking RT aware +Subject: [PATCH 174/198] tty/serial/omap: Make the locking RT aware The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and @@ -44,5 +44,5 @@ index f4c6ff806465..1097fca22307 100644 static int __init -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0176-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/buildroot-external/patches/linux/0175-tty-serial-pl011-Make-the-locking-work-on-RT.patch similarity index 88% rename from buildroot-external/patches/linux/0176-tty-serial-pl011-Make-the-locking-work-on-RT.patch rename to buildroot-external/patches/linux/0175-tty-serial-pl011-Make-the-locking-work-on-RT.patch index 82a41942..8ceef49a 100644 --- a/buildroot-external/patches/linux/0176-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/buildroot-external/patches/linux/0175-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,7 +1,7 @@ -From 5989718d0c06eefdeba1764a69e7c806b1ff66c7 Mon Sep 17 00:00:00 2001 +From c6affb82623309dd23ef2d095104c59d3fbd69c1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 -Subject: [PATCH 176/196] tty/serial/pl011: Make the locking work on RT +Subject: [PATCH 175/198] tty/serial/pl011: Make the locking work on RT The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index aec67d740e44..19200ab2af75 100644 +index 16c770311069..9cd660edb165 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2328,13 +2328,10 @@ pl011_console_write(struct console *co, const char *s, unsigned int count) @@ -43,5 +43,5 @@ index aec67d740e44..19200ab2af75 100644 clk_disable(uap->clk); } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0177-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch b/buildroot-external/patches/linux/0176-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch similarity index 94% rename from buildroot-external/patches/linux/0177-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch rename to buildroot-external/patches/linux/0176-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch index f26f27a5..0f6a28fc 100644 --- a/buildroot-external/patches/linux/0177-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch +++ b/buildroot-external/patches/linux/0176-ARM-vfp-Provide-vfp_lock-for-VFP-locking.patch @@ -1,7 +1,7 @@ -From 5f48127d0cf989d3c97d80ab73a022bd28097b8f Mon Sep 17 00:00:00 2001 +From fddfbcea7ad603e58c38fceb155a4fbf7c84abdd Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 19 May 2023 16:57:29 +0200 -Subject: [PATCH 177/196] ARM: vfp: Provide vfp_lock() for VFP locking. +Subject: [PATCH 176/198] ARM: vfp: Provide vfp_lock() for VFP locking. kernel_neon_begin() uses local_bh_disable() to ensure exclusive access to the VFP unit. This is broken on PREEMPT_RT because a BH disabled @@ -76,5 +76,5 @@ index 7e8773a2d99d..8d321cdb7ac5 100644 EXPORT_SYMBOL(kernel_neon_end); -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch b/buildroot-external/patches/linux/0177-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch similarity index 91% rename from buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch rename to buildroot-external/patches/linux/0177-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch index fbe006ac..b80f5fcd 100644 --- a/buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch +++ b/buildroot-external/patches/linux/0177-ARM-vfp-Use-vfp_lock-in-vfp_sync_hwstate.patch @@ -1,7 +1,7 @@ -From 831b8f09454e182de35f30971bd4313256dc2649 Mon Sep 17 00:00:00 2001 +From b4c9e960c82d665a862ec3f9ba765ae5044431f4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 19 May 2023 16:57:30 +0200 -Subject: [PATCH 178/196] ARM: vfp: Use vfp_lock() in vfp_sync_hwstate(). +Subject: [PATCH 177/198] ARM: vfp: Use vfp_lock() in vfp_sync_hwstate(). vfp_sync_hwstate() uses preempt_disable() followed by local_bh_disable() to ensure that it won't get interrupted while checking the VFP state. @@ -45,5 +45,5 @@ index 8d321cdb7ac5..3b9360bfc508 100644 /* Ensure that the thread reloads the hardware VFP state on the next use. */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0179-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch b/buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch similarity index 91% rename from buildroot-external/patches/linux/0179-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch rename to buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch index a638864c..9833b1af 100644 --- a/buildroot-external/patches/linux/0179-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch +++ b/buildroot-external/patches/linux/0178-ARM-vfp-Use-vfp_lock-in-vfp_support_entry.patch @@ -1,7 +1,7 @@ -From ed089f095d7803d34681d7dcd142ce1320bb2961 Mon Sep 17 00:00:00 2001 +From 4cec55ef57c54c9fc814419639f6cf176ef8a95e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Jun 2023 09:36:10 +0200 -Subject: [PATCH 179/196] ARM: vfp: Use vfp_lock() in vfp_support_entry(). +Subject: [PATCH 178/198] ARM: vfp: Use vfp_lock() in vfp_support_entry(). vfp_entry() is invoked from exception handler and is fully preemptible. It uses local_bh_disable() to remain uninterrupted while checking the @@ -49,5 +49,5 @@ index 3b9360bfc508..9543f011d0ed 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0180-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch b/buildroot-external/patches/linux/0179-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch similarity index 96% rename from buildroot-external/patches/linux/0180-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch rename to buildroot-external/patches/linux/0179-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch index b6f59d12..00d0f2a8 100644 --- a/buildroot-external/patches/linux/0180-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch +++ b/buildroot-external/patches/linux/0179-ARM-vfp-Move-sending-signals-outside-of-vfp_lock-ed-.patch @@ -1,7 +1,7 @@ -From 1f242cb932c85b7ffafb2b1bfa3b2c1a50a10f25 Mon Sep 17 00:00:00 2001 +From ee0060ec6d32a12e820d05cacce0dd64bcfdfb67 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Jun 2023 09:39:33 +0200 -Subject: [PATCH 180/196] ARM: vfp: Move sending signals outside of +Subject: [PATCH 179/198] ARM: vfp: Move sending signals outside of vfp_lock()ed section. VFP_bounce() is invoked from within vfp_support_entry() and may send a @@ -122,5 +122,5 @@ index 9543f011d0ed..9fde36fcb80c 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0181-ARM-Allow-to-enable-RT.patch b/buildroot-external/patches/linux/0180-ARM-Allow-to-enable-RT.patch similarity index 86% rename from buildroot-external/patches/linux/0181-ARM-Allow-to-enable-RT.patch rename to buildroot-external/patches/linux/0180-ARM-Allow-to-enable-RT.patch index 4e7e0b23..895eea8a 100644 --- a/buildroot-external/patches/linux/0181-ARM-Allow-to-enable-RT.patch +++ b/buildroot-external/patches/linux/0180-ARM-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ -From 5730c57b82fb744681d78a88567692c0ed9a3908 Mon Sep 17 00:00:00 2001 +From 58e20971cad80d9bd2dafed5bec4ac832a1a474a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:29 +0200 -Subject: [PATCH 181/196] ARM: Allow to enable RT +Subject: [PATCH 180/198] ARM: Allow to enable RT Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 2 insertions(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index 2257e98d4df3..ebd0dee6b162 100644 +index dea47ba6576b..a154ecd2d3c3 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -34,6 +34,7 @@ config ARM @@ -32,5 +32,5 @@ index 2257e98d4df3..ebd0dee6b162 100644 select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_RSEQ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0182-ARM64-Allow-to-enable-RT.patch b/buildroot-external/patches/linux/0181-ARM64-Allow-to-enable-RT.patch similarity index 81% rename from buildroot-external/patches/linux/0182-ARM64-Allow-to-enable-RT.patch rename to buildroot-external/patches/linux/0181-ARM64-Allow-to-enable-RT.patch index 456c210a..24a01d30 100644 --- a/buildroot-external/patches/linux/0182-ARM64-Allow-to-enable-RT.patch +++ b/buildroot-external/patches/linux/0181-ARM64-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ -From ae691114a0dfe77423bf7abd96ee684306c49a44 Mon Sep 17 00:00:00 2001 +From 0968f2c1618d3eefe91ca5ed1c1228b1a843579a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:35 +0200 -Subject: [PATCH 182/196] ARM64: Allow to enable RT +Subject: [PATCH 181/198] ARM64: Allow to enable RT Allow to select RT. @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index b5df38c2a006..bc53a9889d03 100644 +index f9777ce2ccb2..9717c564daac 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -97,6 +97,7 @@ config ARM64 @@ -24,5 +24,5 @@ index b5df38c2a006..bc53a9889d03 100644 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION if COMPAT select ARCH_WANT_DEFAULT_BPF_JIT -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0183-powerpc-traps-Use-PREEMPT_RT.patch b/buildroot-external/patches/linux/0182-powerpc-traps-Use-PREEMPT_RT.patch similarity index 90% rename from buildroot-external/patches/linux/0183-powerpc-traps-Use-PREEMPT_RT.patch rename to buildroot-external/patches/linux/0182-powerpc-traps-Use-PREEMPT_RT.patch index a0513a5f..de01981b 100644 --- a/buildroot-external/patches/linux/0183-powerpc-traps-Use-PREEMPT_RT.patch +++ b/buildroot-external/patches/linux/0182-powerpc-traps-Use-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From a303cfb9c906ab9c094f55e559bcbe43513320cc Mon Sep 17 00:00:00 2001 +From 45a4f213cb8e934d842cafce127e905f7193c267 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 26 Jul 2019 11:30:49 +0200 -Subject: [PATCH 183/196] powerpc: traps: Use PREEMPT_RT +Subject: [PATCH 182/198] powerpc: traps: Use PREEMPT_RT Add PREEMPT_RT to the backtrace if enabled. @@ -35,5 +35,5 @@ index 2de7f6dcd32b..739f5b179a7f 100644 IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "", debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "", -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0184-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/buildroot-external/patches/linux/0183-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch similarity index 95% rename from buildroot-external/patches/linux/0184-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch rename to buildroot-external/patches/linux/0183-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch index fdd7b5b4..e8cf8148 100644 --- a/buildroot-external/patches/linux/0184-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +++ b/buildroot-external/patches/linux/0183-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch @@ -1,7 +1,7 @@ -From b074c5c18bf3edadcc64cf2258eb6022acca20b0 Mon Sep 17 00:00:00 2001 +From d6d986d2e9d8d0e11cc2c50898e4664b975a8de0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:54 +0100 -Subject: [PATCH 184/196] powerpc/pseries/iommu: Use a locallock instead +Subject: [PATCH 183/198] powerpc/pseries/iommu: Use a locallock instead local_irq_save() The locallock protects the per-CPU variable tce_page. The function @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c -index 496e16c588aa..05cee07aafbb 100644 +index e8c4129697b1..c61e29deac8d 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -25,6 +25,7 @@ @@ -113,5 +113,5 @@ index 496e16c588aa..05cee07aafbb 100644 } -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0185-powerpc-pseries-Select-the-generic-memory-allocator.patch b/buildroot-external/patches/linux/0184-powerpc-pseries-Select-the-generic-memory-allocator.patch similarity index 87% rename from buildroot-external/patches/linux/0185-powerpc-pseries-Select-the-generic-memory-allocator.patch rename to buildroot-external/patches/linux/0184-powerpc-pseries-Select-the-generic-memory-allocator.patch index 96ab964b..59b8e8a9 100644 --- a/buildroot-external/patches/linux/0185-powerpc-pseries-Select-the-generic-memory-allocator.patch +++ b/buildroot-external/patches/linux/0184-powerpc-pseries-Select-the-generic-memory-allocator.patch @@ -1,7 +1,7 @@ -From 338449e3cf2b12f4db5d74b7af789840002944ac Mon Sep 17 00:00:00 2001 +From 15c8a2f5e39424b3b22ef9af2afd11cf05f300cd Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 9 Mar 2023 09:13:52 +0100 -Subject: [PATCH 185/196] powerpc/pseries: Select the generic memory allocator. +Subject: [PATCH 184/198] powerpc/pseries: Select the generic memory allocator. The RTAS work area allocator is using the generic memory allocator and as such it must select it. @@ -28,5 +28,5 @@ index 4ebf2ef2845d..381c3be3bec1 100644 select MPIC select OF_DYNAMIC -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0186-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/buildroot-external/patches/linux/0185-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch similarity index 93% rename from buildroot-external/patches/linux/0186-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch rename to buildroot-external/patches/linux/0185-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index f91b39a7..82f8bb87 100644 --- a/buildroot-external/patches/linux/0186-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/buildroot-external/patches/linux/0185-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,7 +1,7 @@ -From 3fb485b6b806aae2621e9377e634ad771817a239 Mon Sep 17 00:00:00 2001 +From 8a464d9118f67a5ecd0d42995ebf8f881f84ae94 Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Fri, 24 Apr 2015 15:53:13 +0000 -Subject: [PATCH 186/196] powerpc/kvm: Disable in-kernel MPIC emulation for +Subject: [PATCH 185/198] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT While converting the openpic emulation code to use a raw_spinlock_t enables @@ -41,5 +41,5 @@ index 902611954200..2f188137f830 100644 select HAVE_KVM_IRQFD select HAVE_KVM_IRQ_ROUTING -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0187-powerpc-stackprotector-work-around-stack-guard-init-.patch b/buildroot-external/patches/linux/0186-powerpc-stackprotector-work-around-stack-guard-init-.patch similarity index 89% rename from buildroot-external/patches/linux/0187-powerpc-stackprotector-work-around-stack-guard-init-.patch rename to buildroot-external/patches/linux/0186-powerpc-stackprotector-work-around-stack-guard-init-.patch index 74fef41f..4d9f4a38 100644 --- a/buildroot-external/patches/linux/0187-powerpc-stackprotector-work-around-stack-guard-init-.patch +++ b/buildroot-external/patches/linux/0186-powerpc-stackprotector-work-around-stack-guard-init-.patch @@ -1,7 +1,7 @@ -From 30a2093bd995e7c7ecf709b2c0f1f074f387c02e Mon Sep 17 00:00:00 2001 +From 481135982d42836f73f197cd92c43c4216aef856 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:29 +0100 -Subject: [PATCH 187/196] powerpc/stackprotector: work around stack-guard init +Subject: [PATCH 186/198] powerpc/stackprotector: work around stack-guard init from atomic This is invoked from the secondary CPU in atomic context. On x86 we use @@ -35,5 +35,5 @@ index 283c34647856..4727f40052dd 100644 #ifdef CONFIG_PPC64 get_paca()->canary = canary; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0188-POWERPC-Allow-to-enable-RT.patch b/buildroot-external/patches/linux/0187-POWERPC-Allow-to-enable-RT.patch similarity index 89% rename from buildroot-external/patches/linux/0188-POWERPC-Allow-to-enable-RT.patch rename to buildroot-external/patches/linux/0187-POWERPC-Allow-to-enable-RT.patch index 3aa1ec3a..8f21debe 100644 --- a/buildroot-external/patches/linux/0188-POWERPC-Allow-to-enable-RT.patch +++ b/buildroot-external/patches/linux/0187-POWERPC-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ -From 3ecc6489ba0c2468bb6315ee0c5a960135dd9948 Mon Sep 17 00:00:00 2001 +From 6bb9aa05eddc485745fc1a60c90465acf64234c8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:41 +0200 -Subject: [PATCH 188/196] POWERPC: Allow to enable RT +Subject: [PATCH 187/198] POWERPC: Allow to enable RT Allow to select RT. @@ -32,5 +32,5 @@ index 2fe51e0ad637..116444551038 100644 select HAVE_SETUP_PER_CPU_AREA if PPC64 select HAVE_SOFTIRQ_ON_OWN_STACK -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0189-RISC-V-Probe-misaligned-access-speed-in-parallel.patch b/buildroot-external/patches/linux/0188-RISC-V-Probe-misaligned-access-speed-in-parallel.patch similarity index 94% rename from buildroot-external/patches/linux/0189-RISC-V-Probe-misaligned-access-speed-in-parallel.patch rename to buildroot-external/patches/linux/0188-RISC-V-Probe-misaligned-access-speed-in-parallel.patch index e23f4d5e..f73b86a7 100644 --- a/buildroot-external/patches/linux/0189-RISC-V-Probe-misaligned-access-speed-in-parallel.patch +++ b/buildroot-external/patches/linux/0188-RISC-V-Probe-misaligned-access-speed-in-parallel.patch @@ -1,7 +1,7 @@ -From fcebbd53d7a303f69abe31831600de29f6f977d4 Mon Sep 17 00:00:00 2001 +From 0e129cb6f72a447a22d327066cbb9b00c77e0104 Mon Sep 17 00:00:00 2001 From: Evan Green Date: Mon, 6 Nov 2023 14:58:55 -0800 -Subject: [PATCH 189/196] RISC-V: Probe misaligned access speed in parallel +Subject: [PATCH 188/198] RISC-V: Probe misaligned access speed in parallel Probing for misaligned access speed takes about 0.06 seconds. On a system with 64 cores, doing this in smp_callin() means it's done @@ -44,7 +44,7 @@ index d0345bd659c9..23fed53b8815 100644 - #endif diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c -index e12cd22755c7..c3208b21e678 100644 +index e39a905aca24..9d8b6b463592 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -8,6 +8,7 @@ @@ -55,7 +55,7 @@ index e12cd22755c7..c3208b21e678 100644 #include #include #include -@@ -29,6 +30,7 @@ +@@ -30,6 +31,7 @@ #define MISALIGNED_ACCESS_JIFFIES_LG2 1 #define MISALIGNED_BUFFER_SIZE 0x4000 @@ -63,7 +63,7 @@ index e12cd22755c7..c3208b21e678 100644 #define MISALIGNED_COPY_SIZE ((MISALIGNED_BUFFER_SIZE / 2) - 0x80) unsigned long elf_hwcap __read_mostly; -@@ -556,14 +558,15 @@ unsigned long riscv_get_elf_hwcap(void) +@@ -571,14 +573,15 @@ unsigned long riscv_get_elf_hwcap(void) return hwcap; } @@ -81,7 +81,7 @@ index e12cd22755c7..c3208b21e678 100644 void *dst; void *src; long speed = RISCV_HWPROBE_MISALIGNED_SLOW; -@@ -630,7 +633,7 @@ void check_unaligned_access(int cpu) +@@ -645,7 +648,7 @@ void check_unaligned_access(int cpu) pr_warn("cpu%d: rdtime lacks granularity needed to measure unaligned access speed\n", cpu); @@ -90,7 +90,7 @@ index e12cd22755c7..c3208b21e678 100644 } if (word_cycles < byte_cycles) -@@ -644,18 +647,83 @@ void check_unaligned_access(int cpu) +@@ -659,18 +662,83 @@ void check_unaligned_access(int cpu) (speed == RISCV_HWPROBE_MISALIGNED_FAST) ? "fast" : "slow"); per_cpu(misaligned_access_speed, cpu) = speed; @@ -192,5 +192,5 @@ index 1b8da4e40a4d..2cb5e651412c 100644 if (has_vector()) { if (riscv_v_setup_vsize()) -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0190-riscv-add-PREEMPT_AUTO-support.patch b/buildroot-external/patches/linux/0189-riscv-add-PREEMPT_AUTO-support.patch similarity index 91% rename from buildroot-external/patches/linux/0190-riscv-add-PREEMPT_AUTO-support.patch rename to buildroot-external/patches/linux/0189-riscv-add-PREEMPT_AUTO-support.patch index dd7c6e4a..27be0c57 100644 --- a/buildroot-external/patches/linux/0190-riscv-add-PREEMPT_AUTO-support.patch +++ b/buildroot-external/patches/linux/0189-riscv-add-PREEMPT_AUTO-support.patch @@ -1,7 +1,7 @@ -From a36621ff3b891fd2d4576e5353d477cefbabf237 Mon Sep 17 00:00:00 2001 +From 9a7b17163051dc0e414858ee488e5309eae55aa8 Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Tue, 31 Oct 2023 22:35:20 +0800 -Subject: [PATCH 190/196] riscv: add PREEMPT_AUTO support +Subject: [PATCH 189/198] riscv: add PREEMPT_AUTO support riscv has switched to GENERIC_ENTRY, so adding PREEMPT_AUTO is as simple as adding TIF_ARCH_RESCHED_LAZY related definitions and enabling @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 3 insertions(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig -index 9e6d442773ee..75ac6cfbc0b0 100644 +index c785a0200573..ea01aa411e2c 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -135,6 +135,7 @@ config RISCV @@ -47,5 +47,5 @@ index d18ce0113ca1..e18710fe51f0 100644 #define _TIF_WORK_MASK \ (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING | _TIF_NEED_RESCHED | \ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0191-riscv-allow-to-enable-RT.patch b/buildroot-external/patches/linux/0190-riscv-allow-to-enable-RT.patch similarity index 81% rename from buildroot-external/patches/linux/0191-riscv-allow-to-enable-RT.patch rename to buildroot-external/patches/linux/0190-riscv-allow-to-enable-RT.patch index e70946cd..cf647734 100644 --- a/buildroot-external/patches/linux/0191-riscv-allow-to-enable-RT.patch +++ b/buildroot-external/patches/linux/0190-riscv-allow-to-enable-RT.patch @@ -1,7 +1,7 @@ -From 8b017481f5f60b69406c4b86993f3b5e4ced7c0b Mon Sep 17 00:00:00 2001 +From e83692fd6721c9e16e9defbaa0327b438c541e01 Mon Sep 17 00:00:00 2001 From: Jisheng Zhang Date: Tue, 31 Oct 2023 22:35:21 +0800 -Subject: [PATCH 191/196] riscv: allow to enable RT +Subject: [PATCH 190/198] riscv: allow to enable RT Now, it's ready to enable RT on riscv. @@ -12,7 +12,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig -index 75ac6cfbc0b0..64dfdcc616be 100644 +index ea01aa411e2c..e05c170781c6 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -48,6 +48,7 @@ config RISCV @@ -24,5 +24,5 @@ index 75ac6cfbc0b0..64dfdcc616be 100644 select ARCH_USE_QUEUED_RWLOCKS select ARCH_USES_CFI_TRAPS if CFI_CLANG -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0192-sysfs-Add-sys-kernel-realtime-entry.patch b/buildroot-external/patches/linux/0191-sysfs-Add-sys-kernel-realtime-entry.patch similarity index 91% rename from buildroot-external/patches/linux/0192-sysfs-Add-sys-kernel-realtime-entry.patch rename to buildroot-external/patches/linux/0191-sysfs-Add-sys-kernel-realtime-entry.patch index 1aca5de2..196cdc8a 100644 --- a/buildroot-external/patches/linux/0192-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/buildroot-external/patches/linux/0191-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,7 +1,7 @@ -From 87f288040fbfe4a786f20a77539de3578bbb56a6 Mon Sep 17 00:00:00 2001 +From 5cf0a5fddba4ec13b99ac1757a5ba4046e2d636c Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 192/196] sysfs: Add /sys/kernel/realtime entry +Subject: [PATCH 191/198] sysfs: Add /sys/kernel/realtime entry Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. @@ -50,5 +50,5 @@ index 1d4bc493b2f4..486c68c11bbe 100644 NULL }; -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0193-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch b/buildroot-external/patches/linux/0192-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch similarity index 81% rename from buildroot-external/patches/linux/0193-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch rename to buildroot-external/patches/linux/0192-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch index 8de25074..e9c0f1f1 100644 --- a/buildroot-external/patches/linux/0193-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch +++ b/buildroot-external/patches/linux/0192-arch-riscv-check_unaligned_acces-don-t-alloc-page-fo.patch @@ -1,7 +1,7 @@ -From 08ed37dd249e396e8a529ceec3f2e132e19ba80b Mon Sep 17 00:00:00 2001 +From 04a566c2ccca0e4860982c8c3291e5efef9a1378 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Mon, 5 Feb 2024 14:04:38 -0600 -Subject: [PATCH 193/196] arch/riscv: check_unaligned_acces(): don't alloc page +Subject: [PATCH 192/198] arch/riscv: check_unaligned_acces(): don't alloc page for check Drop the alloc_pages() call since the page is passed in as @@ -14,10 +14,10 @@ Signed-off-by: Clark Williams 1 file changed, 6 deletions(-) diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c -index c3208b21e678..32a21e9a0fff 100644 +index 9d8b6b463592..dd118773e717 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c -@@ -575,12 +575,6 @@ static int check_unaligned_access(void *param) +@@ -590,12 +590,6 @@ static int check_unaligned_access(void *param) if (per_cpu(misaligned_access_speed, cpu) != RISCV_HWPROBE_MISALIGNED_UNKNOWN) return; @@ -31,5 +31,5 @@ index c3208b21e678..32a21e9a0fff 100644 dst = (void *)((unsigned long)page_address(page) | 0x1); /* Unalign src as well, but differently (off by 1 + 2 = 3). */ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0194-Revert-preempt-Put-preempt_enable-within-an-instrume.patch b/buildroot-external/patches/linux/0193-Revert-preempt-Put-preempt_enable-within-an-instrume.patch similarity index 90% rename from buildroot-external/patches/linux/0194-Revert-preempt-Put-preempt_enable-within-an-instrume.patch rename to buildroot-external/patches/linux/0193-Revert-preempt-Put-preempt_enable-within-an-instrume.patch index 460f1fad..b2385b6d 100644 --- a/buildroot-external/patches/linux/0194-Revert-preempt-Put-preempt_enable-within-an-instrume.patch +++ b/buildroot-external/patches/linux/0193-Revert-preempt-Put-preempt_enable-within-an-instrume.patch @@ -1,7 +1,7 @@ -From 0a90e6ae0b76d909c97ebfbc532e72f9d6b4d16f Mon Sep 17 00:00:00 2001 +From 265c0055d1dad63a9383aa6a460b21e1fcc2c90e Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Tue, 6 Feb 2024 12:17:19 -0600 -Subject: [PATCH 194/196] Revert "preempt: Put preempt_enable() within an +Subject: [PATCH 193/198] Revert "preempt: Put preempt_enable() within an instrumentation*() section." This reverts commit cc3d27d9fdeddcb82db3ea176a44a5509e70eb1c. @@ -43,5 +43,5 @@ index cd16f0330fba..9aa6358a1a16 100644 #define preempt_check_resched() \ -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0195-Add-localversion-for-RT-release.patch b/buildroot-external/patches/linux/0194-Add-localversion-for-RT-release.patch similarity index 75% rename from buildroot-external/patches/linux/0195-Add-localversion-for-RT-release.patch rename to buildroot-external/patches/linux/0194-Add-localversion-for-RT-release.patch index 29a1d366..c8a2ec37 100644 --- a/buildroot-external/patches/linux/0195-Add-localversion-for-RT-release.patch +++ b/buildroot-external/patches/linux/0194-Add-localversion-for-RT-release.patch @@ -1,7 +1,7 @@ -From 91f87aceb8ecbff103edbbd401f2b8425877bf16 Mon Sep 17 00:00:00 2001 +From a38b8dd4b0cc5a5fb2f20a95a33cf9213c37b92d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 195/196] Add localversion for -RT release +Subject: [PATCH 194/198] Add localversion for -RT release Signed-off-by: Thomas Gleixner --- @@ -17,5 +17,5 @@ index 000000000000..483ad771f201 @@ -0,0 +1 @@ +-rt19 -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0196-Linux-6.6.18-rt23-REBASE.patch b/buildroot-external/patches/linux/0195-Linux-6.6.18-rt23-REBASE.patch similarity index 76% rename from buildroot-external/patches/linux/0196-Linux-6.6.18-rt23-REBASE.patch rename to buildroot-external/patches/linux/0195-Linux-6.6.18-rt23-REBASE.patch index c34208fe..cb7ae83e 100644 --- a/buildroot-external/patches/linux/0196-Linux-6.6.18-rt23-REBASE.patch +++ b/buildroot-external/patches/linux/0195-Linux-6.6.18-rt23-REBASE.patch @@ -1,7 +1,7 @@ -From c555a4a82622332317acf008d7e04b8b3d8eaacd Mon Sep 17 00:00:00 2001 +From dbabd91c9deb07b610a672de1eb278766588c23e Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Tue, 27 Feb 2024 17:13:28 -0600 -Subject: [PATCH 196/196] Linux 6.6.18-rt23 REBASE +Subject: [PATCH 195/198] Linux 6.6.18-rt23 REBASE Signed-off-by: Clark Williams --- @@ -16,5 +16,5 @@ index 483ad771f201..9a218ca23053 100644 --rt19 +-rt23 -- -2.43.2 +2.44.0 diff --git a/buildroot-external/patches/linux/0196-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch b/buildroot-external/patches/linux/0196-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch new file mode 100644 index 00000000..62d8ecec --- /dev/null +++ b/buildroot-external/patches/linux/0196-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch @@ -0,0 +1,42 @@ +From a96bb0e4bd9e6a8659a0305c06a027a457f91f2a Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Tue, 23 Jan 2024 12:56:21 +0100 +Subject: [PATCH 196/198] arm: Disable FAST_GUP on PREEMPT_RT if HIGHPTE is + also enabled. + +gup_pgd_range() is invoked with disabled interrupts and invokes +__kmap_local_page_prot() via pte_offset_map(), gup_p4d_range(). +With HIGHPTE enabled, __kmap_local_page_prot() invokes kmap_high_get() +which uses a spinlock_t via lock_kmap_any(). This leads to an +sleeping-while-atomic error on PREEMPT_RT because spinlock_t becomes a +sleeping lock and must not be acquired in atomic context. + +The loop in map_new_virtual() uses wait_queue_head_t for wake up which +also is using a spinlock_t. + +Limit HAVE_FAST_GUP additionaly to remain disabled on PREEMPT_RT with +HIGHPTE enabled. + +Signed-off-by: Sebastian Andrzej Siewior +(cherry picked from commit 02cf5a345530b4d3a94093f0b5c784701c2e7c6a) +Signed-off-by: Clark Williams +--- + arch/arm/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index a154ecd2d3c3..e5a283851c02 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -97,7 +97,7 @@ config ARM + select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE + select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU + select HAVE_EXIT_THREAD +- select HAVE_FAST_GUP if ARM_LPAE ++ select HAVE_FAST_GUP if ARM_LPAE && !(PREEMPT_RT && HIGHPTE) + select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL + select HAVE_FUNCTION_ERROR_INJECTION + select HAVE_FUNCTION_GRAPH_TRACER +-- +2.44.0 + diff --git a/buildroot-external/patches/linux/0197-printk-nbcon-move-locked_port-flag-to-struct-uart_po.patch b/buildroot-external/patches/linux/0197-printk-nbcon-move-locked_port-flag-to-struct-uart_po.patch new file mode 100644 index 00000000..321f0fff --- /dev/null +++ b/buildroot-external/patches/linux/0197-printk-nbcon-move-locked_port-flag-to-struct-uart_po.patch @@ -0,0 +1,96 @@ +From e5fe1d2326e029a63151f6a63b042df7ba248811 Mon Sep 17 00:00:00 2001 +From: Junxiao Chang +Date: Tue, 23 Jan 2024 13:40:32 +0800 +Subject: [PATCH 197/198] printk: nbcon: move locked_port flag to struct + uart_port + +Console pointer in uart_port might be shared among multiple uart +ports. Flag port locked by nbcon should be saved in uart_port +structure instead of in console structure. + +Fixes: 6424f396c49e ("printk: nbcon: Implement processing in port->lock wrapper") +Suggested-by: John Ogness +Signed-off-by: Junxiao Chang +Signed-off-by: Sebastian Andrzej Siewior +Link: https://lore.kernel.org/all/20240123054033.183114-2-junxiao.chang@intel.com +(cherry picked from commit d4fb86a96cb4a1efd24ca13a2ac234a1c9a3fdc5) +Signed-off-by: Clark Williams +--- + include/linux/console.h | 2 -- + include/linux/serial_core.h | 1 + + kernel/printk/nbcon.c | 8 ++++---- + 3 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/include/linux/console.h b/include/linux/console.h +index f8a062867888..1eb9580e9b18 100644 +--- a/include/linux/console.h ++++ b/include/linux/console.h +@@ -304,7 +304,6 @@ struct nbcon_write_context { + * @nbcon_state: State for nbcon consoles + * @nbcon_seq: Sequence number of the next record for nbcon to print + * @pbufs: Pointer to nbcon private buffer +- * @locked_port: True, if the port lock is locked by nbcon + * @kthread: Printer kthread for this console + * @rcuwait: RCU-safe wait object for @kthread waking + * @irq_work: Defer @kthread waking to IRQ work context +@@ -338,7 +337,6 @@ struct console { + atomic_t __private nbcon_state; + atomic_long_t __private nbcon_seq; + struct printk_buffers *pbufs; +- bool locked_port; + struct task_struct *kthread; + struct rcuwait rcuwait; + struct irq_work irq_work; +diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h +index e5947b13f2f1..99d3f1e24bec 100644 +--- a/include/linux/serial_core.h ++++ b/include/linux/serial_core.h +@@ -488,6 +488,7 @@ struct uart_port { + struct uart_icount icount; /* statistics */ + + struct console *cons; /* struct console, if any */ ++ bool nbcon_locked_port; /* True, if the port is locked by nbcon */ + /* flags must be updated while holding port mutex */ + upf_t flags; + +diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c +index 1b1b585b1675..b53d93585ee7 100644 +--- a/kernel/printk/nbcon.c ++++ b/kernel/printk/nbcon.c +@@ -1586,7 +1586,7 @@ void nbcon_acquire(struct uart_port *up) + if (!uart_is_nbcon(up)) + return; + +- WARN_ON_ONCE(con->locked_port); ++ WARN_ON_ONCE(up->nbcon_locked_port); + + do { + do { +@@ -1597,7 +1597,7 @@ void nbcon_acquire(struct uart_port *up) + + } while (!nbcon_context_enter_unsafe(&ctxt)); + +- con->locked_port = true; ++ up->nbcon_locked_port = true; + } + EXPORT_SYMBOL_GPL(nbcon_acquire); + +@@ -1623,13 +1623,13 @@ void nbcon_release(struct uart_port *up) + .prio = NBCON_PRIO_NORMAL, + }; + +- if (!con->locked_port) ++ if (!up->nbcon_locked_port) + return; + + if (nbcon_context_exit_unsafe(&ctxt)) + nbcon_context_release(&ctxt); + +- con->locked_port = false; ++ up->nbcon_locked_port = false; + } + EXPORT_SYMBOL_GPL(nbcon_release); + +-- +2.44.0 + diff --git a/buildroot-external/patches/linux/0198-Linux-6.6.25-rt29-REBASE.patch b/buildroot-external/patches/linux/0198-Linux-6.6.25-rt29-REBASE.patch new file mode 100644 index 00000000..57a6cc75 --- /dev/null +++ b/buildroot-external/patches/linux/0198-Linux-6.6.25-rt29-REBASE.patch @@ -0,0 +1,20 @@ +From f81d441361f48874bf60195d27353323d287fab5 Mon Sep 17 00:00:00 2001 +From: Clark Williams +Date: Mon, 8 Apr 2024 21:34:33 -0500 +Subject: [PATCH 198/198] Linux 6.6.25-rt29 REBASE + +Signed-off-by: Clark Williams +--- + localversion-rt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/localversion-rt b/localversion-rt +index 9a218ca23053..90290c642ed5 100644 +--- a/localversion-rt ++++ b/localversion-rt +@@ -1 +1 @@ +--rt23 ++-rt29 +-- +2.44.0 + diff --git a/buildroot-external/uclibc.config b/buildroot-external/uclibc.config new file mode 100644 index 00000000..d1d49d3c --- /dev/null +++ b/buildroot-external/uclibc.config @@ -0,0 +1,257 @@ +# +# Automatically generated file; DO NOT EDIT. +# uClibc-ng 1.0.45 C Library Configuration +# +TARGET_aarch64=y +# TARGET_alpha is not set +# TARGET_arc is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_c6x is not set +# TARGET_cris is not set +# TARGET_csky is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_ia64 is not set +# TARGET_kvx is not set +# TARGET_lm32 is not set +# TARGET_m68k is not set +# TARGET_metag is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nds32 is not set +# TARGET_nios2 is not set +# TARGET_or1k is not set +# TARGET_powerpc is not set +# TARGET_riscv64 is not set +# TARGET_riscv32 is not set +# TARGET_sh is not set +# TARGET_sparc is not set +# TARGET_sparc64 is not set +# TARGET_tile is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set +TARGET_LDSO_NAME="ld-uClibc" +TARGET_ARCH_BITS=64 + +# +# Target Architecture Features and Options +# +TARGET_ARCH="aarch64" +FORCE_OPTIONS_FOR_ARCH=y +CONFIG_AARCH64_PAGE_SIZE_4K=y +# CONFIG_AARCH64_PAGE_SIZE_16K is not set +# CONFIG_AARCH64_PAGE_SIZE_64K is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_ANY_ENDIAN=y +ARCH_LITTLE_ENDIAN=y +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_WANTS_LITTLE_ENDIAN=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +DO_XSI_MATH=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="/home/peter/development/ovos-buildroot-rpi4/buildroot/output/build/linux-headers-custom/usr/include" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +DOPIC=y +# STATIC_PIE is not set +HAVE_LDSO=y +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +# LDSO_CACHE_SUPPORT is not set +LDSO_PRELOAD_ENV_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +# LDSO_STANDALONE_SUPPORT is not set +# LDSO_PRELINK_SUPPORT is not set +# UCLIBC_STATIC_LDCONFIG is not set +LDSO_RUNPATH=y +LDSO_RUNPATH_OF_EXECUTABLE=y +LDSO_SAFE_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +UCLIBC_HAS_THREADS_NATIVE=y +UCLIBC_HAS_THREADS=y +UCLIBC_HAS_TLS=y +# PTHREADS_DEBUG_SUPPORT is not set +PTHREADS_STACK_DEFAULT_SIZE=2097152 +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +UCLIBC_DYNAMIC_ATEXIT=y +UCLIBC_HAS_UTMPX=y +UCLIBC_HAS_UTMP=y +UCLIBC_SUSV2_LEGACY=y +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y +# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +UCLIBC_HAS_PROFILING=y +UCLIBC_HAS_CRYPT_IMPL=y +UCLIBC_HAS_SHA256_CRYPT_IMPL=y +UCLIBC_HAS_SHA512_CRYPT_IMPL=y +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +UCLIBC_HAS_IPV6=y +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +# UCLIBC_HAS_BSD_RES_CLOSE is not set +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLVER_SUPPORT=y +# UCLIBC_DNSRAND_MODE_URANDOM is not set +# UCLIBC_DNSRAND_MODE_CLOCK is not set +UCLIBC_DNSRAND_MODE_PRNGPLUS=y +# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_STDIO_FUTEXES=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +UCLIBC_HAS_LIBICONV=y +UCLIBC_HAS_LIBINTL=y +UCLIBC_HAS_LOCALE=y +UCLIBC_BUILD_MINIMAL_LOCALE=y +# UCLIBC_BUILD_ALL_LOCALE is not set +UCLIBC_BUILD_MINIMAL_LOCALES="en_US" +UCLIBC_HAS_XLOCALE=y +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +UCLIBC_HAS_GETOPT_LONG=y +UCLIBC_HAS_GNU_GETSUBOPT=y +UCLIBC_HAS_ARGP=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_FNMATCH=y +UCLIBC_HAS_WORDEXP=y +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +# UCLIBC_HAS_FTS is not set +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +# UCLIBC_HAS_SSP is not set +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# Development/debugging options +# +CROSS_COMPILER_PREFIX="/home/peter/development/ovos-buildroot-rpi4/buildroot/output/host/bin/aarch64-buildroot-linux-uclibc-" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DOSTRIP is not set +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set