From 0ce34dd8626c4eedb3c6d8221f150a973ee5cb89 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 30 Jun 2022 11:26:28 +0200 Subject: [PATCH] 5.10-stable patches added patches: drm-remove-drm_fb_helper_modinit.patch maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch --- .../drm-remove-drm_fb_helper_modinit.patch | 104 ++++++++++++++++++ ...dd-amir-as-xfs-maintainer-for-5.10.y.patch | 40 +++++++ queue-5.10/series | 3 + ..._init-annotated-tick_nohz_full_setup.patch | 49 +++++++++ 4 files changed, 196 insertions(+) create mode 100644 queue-5.10/drm-remove-drm_fb_helper_modinit.patch create mode 100644 queue-5.10/maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch create mode 100644 queue-5.10/series create mode 100644 queue-5.10/tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch diff --git a/queue-5.10/drm-remove-drm_fb_helper_modinit.patch b/queue-5.10/drm-remove-drm_fb_helper_modinit.patch new file mode 100644 index 00000000000..1a8e5a041b6 --- /dev/null +++ b/queue-5.10/drm-remove-drm_fb_helper_modinit.patch @@ -0,0 +1,104 @@ +From bf22c9ec39da90ce866d5f625d616f28bc733dc1 Mon Sep 17 00:00:00 2001 +From: Christoph Hellwig +Date: Tue, 2 Feb 2021 13:13:23 +0100 +Subject: drm: remove drm_fb_helper_modinit + +From: Christoph Hellwig + +commit bf22c9ec39da90ce866d5f625d616f28bc733dc1 upstream. + +drm_fb_helper_modinit has a lot of boilerplate for what is not very +simple functionality. Just open code it in the only caller using +IS_ENABLED and IS_MODULE, and skip the find_module check as a +request_module is harmless if the module is already loaded (and not +other caller has this find_module check either). + +Acked-by: Daniel Vetter +Signed-off-by: Christoph Hellwig +Signed-off-by: Jessica Yu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/drm_crtc_helper_internal.h | 10 ---------- + drivers/gpu/drm/drm_fb_helper.c | 21 --------------------- + drivers/gpu/drm/drm_kms_helper_common.c | 23 +++++++++++------------ + 3 files changed, 11 insertions(+), 43 deletions(-) + +--- a/drivers/gpu/drm/drm_crtc_helper_internal.h ++++ b/drivers/gpu/drm/drm_crtc_helper_internal.h +@@ -32,16 +32,6 @@ + #include + #include + +-/* drm_fb_helper.c */ +-#ifdef CONFIG_DRM_FBDEV_EMULATION +-int drm_fb_helper_modinit(void); +-#else +-static inline int drm_fb_helper_modinit(void) +-{ +- return 0; +-} +-#endif +- + /* drm_dp_aux_dev.c */ + #ifdef CONFIG_DRM_DP_AUX_CHARDEV + int drm_dp_aux_dev_init(void); +--- a/drivers/gpu/drm/drm_fb_helper.c ++++ b/drivers/gpu/drm/drm_fb_helper.c +@@ -2271,24 +2271,3 @@ void drm_fbdev_generic_setup(struct drm_ + drm_client_register(&fb_helper->client); + } + EXPORT_SYMBOL(drm_fbdev_generic_setup); +- +-/* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT) +- * but the module doesn't depend on any fb console symbols. At least +- * attempt to load fbcon to avoid leaving the system without a usable console. +- */ +-int __init drm_fb_helper_modinit(void) +-{ +-#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT) +- const char name[] = "fbcon"; +- struct module *fbcon; +- +- mutex_lock(&module_mutex); +- fbcon = find_module(name); +- mutex_unlock(&module_mutex); +- +- if (!fbcon) +- request_module_nowait(name); +-#endif +- return 0; +-} +-EXPORT_SYMBOL(drm_fb_helper_modinit); +--- a/drivers/gpu/drm/drm_kms_helper_common.c ++++ b/drivers/gpu/drm/drm_kms_helper_common.c +@@ -64,19 +64,18 @@ MODULE_PARM_DESC(edid_firmware, + + static int __init drm_kms_helper_init(void) + { +- int ret; ++ /* ++ * The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT) ++ * but the module doesn't depend on any fb console symbols. At least ++ * attempt to load fbcon to avoid leaving the system without a usable ++ * console. ++ */ ++ if (IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION) && ++ IS_MODULE(CONFIG_FRAMEBUFFER_CONSOLE) && ++ !IS_ENABLED(CONFIG_EXPERT)) ++ request_module_nowait("fbcon"); + +- /* Call init functions from specific kms helpers here */ +- ret = drm_fb_helper_modinit(); +- if (ret < 0) +- goto out; +- +- ret = drm_dp_aux_dev_init(); +- if (ret < 0) +- goto out; +- +-out: +- return ret; ++ return drm_dp_aux_dev_init(); + } + + static void __exit drm_kms_helper_exit(void) diff --git a/queue-5.10/maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch b/queue-5.10/maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch new file mode 100644 index 00000000000..35d882789ac --- /dev/null +++ b/queue-5.10/maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch @@ -0,0 +1,40 @@ +From amir73il@gmail.com Thu Jun 30 11:16:58 2022 +From: Amir Goldstein +Date: Thu, 30 Jun 2022 08:43:21 +0300 +Subject: MAINTAINERS: add Amir as xfs maintainer for 5.10.y +To: Greg Kroah-Hartman +Cc: Sasha Levin , "Darrick J . Wong" , Leah Rumancik , Chandan Babu R , Luis Chamberlain , Adam Manzanares , linux-xfs@vger.kernel.org, stable@vger.kernel.org +Message-ID: <20220630054321.3008933-1-amir73il@gmail.com> + +From: Amir Goldstein + +This is an attempt to direct the bots and human that are testing +LTS 5.10.y towards the maintainer of xfs in the 5.10.y tree. + +This is not an upstream MAINTAINERS entry and 5.15.y and 5.4.y will +have their own LTS xfs maintainer entries. + +Update Darrick's email address from upstream and add Amir as xfs +maintaier for the 5.10.y tree. + +Suggested-by: Darrick J. Wong +Link: https://lore.kernel.org/linux-xfs/Yrx6%2F0UmYyuBPjEr@magnolia/ +Signed-off-by: Amir Goldstein +Reviewed-by: Darrick J. Wong +Signed-off-by: Greg Kroah-Hartman +--- + MAINTAINERS | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -19246,7 +19246,8 @@ F: arch/x86/xen/*swiotlb* + F: drivers/xen/*swiotlb* + + XFS FILESYSTEM +-M: Darrick J. Wong ++M: Amir Goldstein ++M: Darrick J. Wong + M: linux-xfs@vger.kernel.org + L: linux-xfs@vger.kernel.org + S: Supported diff --git a/queue-5.10/series b/queue-5.10/series new file mode 100644 index 00000000000..c43c6f42840 --- /dev/null +++ b/queue-5.10/series @@ -0,0 +1,3 @@ +maintainers-add-amir-as-xfs-maintainer-for-5.10.y.patch +drm-remove-drm_fb_helper_modinit.patch +tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch diff --git a/queue-5.10/tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch b/queue-5.10/tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch new file mode 100644 index 00000000000..f8d00faf068 --- /dev/null +++ b/queue-5.10/tick-nohz-unexport-__init-annotated-tick_nohz_full_setup.patch @@ -0,0 +1,49 @@ +From 2390095113e98fc52fffe35c5206d30d9efe3f78 Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Mon, 27 Jun 2022 12:22:09 +0900 +Subject: tick/nohz: unexport __init-annotated tick_nohz_full_setup() + +From: Masahiro Yamada + +commit 2390095113e98fc52fffe35c5206d30d9efe3f78 upstream. + +EXPORT_SYMBOL and __init is a bad combination because the .init.text +section is freed up after the initialization. Hence, modules cannot +use symbols annotated __init. The access to a freed symbol may end up +with kernel panic. + +modpost used to detect it, but it had been broken for a decade. + +Commit 28438794aba4 ("modpost: fix section mismatch check for exported +init/exit sections") fixed it so modpost started to warn it again, then +this showed up: + + MODPOST vmlinux.symvers + WARNING: modpost: vmlinux.o(___ksymtab_gpl+tick_nohz_full_setup+0x0): Section mismatch in reference from the variable __ksymtab_tick_nohz_full_setup to the function .init.text:tick_nohz_full_setup() + The symbol tick_nohz_full_setup is exported and annotated __init + Fix this by removing the __init annotation of tick_nohz_full_setup or drop the export. + +Drop the export because tick_nohz_full_setup() is only called from the +built-in code in kernel/sched/isolation.c. + +Fixes: ae9e557b5be2 ("time: Export tick start/stop functions for rcutorture") +Reported-by: Linus Torvalds +Signed-off-by: Masahiro Yamada +Tested-by: Paul E. McKenney +Signed-off-by: Linus Torvalds +Cc: Thomas Backlund +Signed-off-by: Greg Kroah-Hartman +--- + kernel/time/tick-sched.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -425,7 +425,6 @@ void __init tick_nohz_full_setup(cpumask + cpumask_copy(tick_nohz_full_mask, cpumask); + tick_nohz_full_running = true; + } +-EXPORT_SYMBOL_GPL(tick_nohz_full_setup); + + static int tick_nohz_cpu_down(unsigned int cpu) + { -- 2.47.3