# git rev-parse -q --verify ee40d543e97d23d3392d8fb1ec9972eb4e9c7611^{commit} ee40d543e97d23d3392d8fb1ec9972eb4e9c7611 already have revision, skipping fetch # git checkout -q -f -B kisskb ee40d543e97d23d3392d8fb1ec9972eb4e9c7611 # git clean -qxdf # < git log -1 # commit ee40d543e97d23d3392d8fb1ec9972eb4e9c7611 # Author: Hugh Dickins # Date: Sat Sep 2 08:29:30 2023 -0700 # # mm/pagewalk: fix bootstopping regression from extra pte_unmap() # # Mikhail reports early-6.6-based Fedora Rawhide not booting: "rcu_preempt # detected expedited stalls", minutes wait, and then hung_task splat while # kworker trying to synchronize_rcu_expedited(). Nothing logged to disk. # # He bisected to my 6.6 a349d72fd9ef ("mm/pgtable: add rcu_read_lock() and # rcu_read_unlock()s"): but the one to blame is my 6.5 commit to fix the # espfix "bad pmd" warnings when booting x86_64 with CONFIG_EFI_PGT_DUMP=y. # # Gaah, that added an "addr >= TASK_SIZE" check to avoid pte_offset_map(), # but failed to add the equivalent check when choosing to pte_unmap(). # # It's not a problem on 6.5 (for different reasons, it's harmless on both # 64-bit and 32-bit), but becomes a bootstopper on 6.6 with the unbalanced # rcu_read_unlock() - RCU has a WARN_ON_ONCE for that, but it would have # scrolled off Mikhail's console too quickly. # # Reported-by: Mikhail Gavrilov # Closes: https://lore.kernel.org/linux-mm/CABXGCsNi8Tiv5zUPNXr6UJw6qV1VdaBEfGqEAMkkXE3QPvZuAQ@mail.gmail.com/ # Fixes: 8b1cb4a2e819 ("mm/pagewalk: fix EFI_PGT_DUMP of espfix area") # Fixes: a349d72fd9ef ("mm/pgtable: add rcu_read_lock() and rcu_read_unlock()s") # Signed-off-by: Hugh Dickins # Tested-by: Mikhail Gavrilov # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux-ld --version # < git log --format=%s --max-count=1 ee40d543e97d23d3392d8fb1ec9972eb4e9c7611 # make -s -j 160 ARCH=m68k O=/kisskb/build/linus_allmodconfig_m68k-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # < make -s -j 160 ARCH=m68k O=/kisskb/build/linus_allmodconfig_m68k-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux- help # make -s -j 160 ARCH=m68k O=/kisskb/build/linus_allmodconfig_m68k-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux- olddefconfig # make -s -j 160 ARCH=m68k O=/kisskb/build/linus_allmodconfig_m68k-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux- /kisskb/src/drivers/mfd/cs42l43.c:1138:12: error: 'cs42l43_runtime_resume' defined but not used [-Werror=unused-function] 1138 | static int cs42l43_runtime_resume(struct device *dev) | ^~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/drivers/mfd/cs42l43.c:1124:12: error: 'cs42l43_runtime_suspend' defined but not used [-Werror=unused-function] 1124 | static int cs42l43_runtime_suspend(struct device *dev) | ^~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/drivers/mfd/cs42l43.c:1106:12: error: 'cs42l43_resume' defined but not used [-Werror=unused-function] 1106 | static int cs42l43_resume(struct device *dev) | ^~~~~~~~~~~~~~ /kisskb/src/drivers/mfd/cs42l43.c:1076:12: error: 'cs42l43_suspend' defined but not used [-Werror=unused-function] 1076 | static int cs42l43_suspend(struct device *dev) | ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[5]: *** [/kisskb/src/scripts/Makefile.build:243: drivers/mfd/cs42l43.o] Error 1 make[5]: *** Waiting for unfinished jobs.... make[4]: *** [/kisskb/src/scripts/Makefile.build:480: drivers/mfd] Error 2 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:480: drivers] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/Makefile:2029: .] Error 2 make[1]: *** [/kisskb/src/Makefile:234: __sub-make] Error 2 make: *** [Makefile:234: __sub-make] Error 2 Command 'make -s -j 160 ARCH=m68k O=/kisskb/build/linus_allmodconfig_m68k-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/m68k-linux/bin/m68k-linux- ' returned non-zero exit status 2. # rm -rf /kisskb/build/linus_allmodconfig_m68k-gcc13 # Build took: 0:06:03.352517