On Wed, 4 Jun 2025, Thomas Hellström wrote: > On Wed, 2025-06-04 at 08:51 -0400, Steven Rostedt wrote: > > From: Steven Rostedt <rost...@goodmis.org> > > > > When CONFIG_SHMEM is not set, the following compiler error occurs: > > > > ld: vmlinux.o: in function `ttm_backup_backup_page': > > (.text+0x10363bc): undefined reference to `shmem_writeout' > > make[3]: *** > > [/work/build/trace/nobackup/linux.git/scripts/Makefile.vmlinux:91: > > vmlinux.unstripped] Error 1 > > make[2]: *** [/work/build/trace/nobackup/linux.git/Makefile:1241: > > vmlinux] Error 2 > > make[1]: *** [/work/build/trace/nobackup/linux.git/Makefile:248: > > __sub-make] Error 2 > > make[1]: Leaving directory '/work/build/nobackup/tracetest' > > make: *** [Makefile:248: __sub-make] Error 2 > > > > This is due to the replacement of writepage and calling > > swap_writeout() > > and shmem_writeout() directly. The issue is that when CONFIG_SHMEM is > > not > > defined, shmem_writeout() is also not defined. > > > > The function ttm_backup_backup_page() called mapping->a_ops- > > >writepage() > > which was then changed to call shmem_writeout() directly. > > > > Even before commit 84798514db50 ("mm: Remove swap_writepage() and > > shmem_writepage()"), it didn't make sense to call anything other than > > shmem_writeout() as the ttm_backup deals only with shmem folios. > > > > Have DRM_TTM config option select SHMEM to guarantee that > > shmem_writeout() > > is available. > > > > Link: > > https://lore.kernel.org/all/20250602170500.48713...@gandalf.local.home/ > > > > Suggested-by: Hugh Dickins <hu...@google.com> > > Fixes: 84798514db50 ("mm: Remove swap_writepage() and > > shmem_writepage()") > > Signed-off-by: Steven Rostedt (Google) <rost...@goodmis.org> > > --- > > Changes since v1: > > https://lore.kernel.org/all/20250602170500.48713...@gandalf.local.home/ > > > > - Instead of adding a shmem_writeout() stub, just make CONFIG_DRM_TTM > > select CONFIG_SHMEM (Hugh Dickins) > > > > drivers/gpu/drm/Kconfig | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > > index f094797f3b2b..ded28c71d89c 100644 > > --- a/drivers/gpu/drm/Kconfig > > +++ b/drivers/gpu/drm/Kconfig > > @@ -188,6 +188,7 @@ source "drivers/gpu/drm/display/Kconfig" > > config DRM_TTM > > tristate > > depends on DRM && MMU > > + select SHMEM > > help > > GPU memory management subsystem for devices with multiple > > GPU memory types. Will be enabled automatically if a > > device driver > > Reviewed-by: Thomas Hellström <thomas.hellst...@linux.intel.com>
Acked-by: Hugh Dickins <hu...@google.com> Thanks a lot!