Hi Am 05.03.26 um 01:23 schrieb Nathan Chancellor: [...]
+static bool font_data_is_internal(font_data_t *fd)+{ + return is_kernel_rodata((unsigned long)fd); +} +
[...]
This breaks the build when CONFIG_FONT_SUPPORT is a module. $ cat allno.config CONFIG_MODULES=y CONFIG_DRM=m CONFIG_DRM_PANIC=y $ make -skj"$(nproc)" ARCH=x86_64 CROSS_COMPILE=x86_64-linux- KCONFIG_ALLCONFIG=1 allnoconfig all ERROR: modpost: "__end_rodata" [lib/fonts/font.ko] undefined! make[4]: *** [scripts/Makefile.modpost:147: Module.symvers] Error 1 ... $ scripts/config -s FONT_SUPPORT m
Thanks for testing. The attached patch fixes the problem for me. Could you please test?
Best regards Thomas
Cheers, Nathan + if (font_data_size(lhs) != font_data_size(rhs)) + return false; + if (FNTSUM(lhs) && FNTSUM(rhs) && FNTSUM(lhs) != FNTSUM(rhs)) + return false; + + return !memcmp(lhs, rhs, FNTSIZE(lhs)); +} +EXPORT_SYMBOL_GPL(font_data_is_equal); + /* * Font lookup */ -- 2.53.0
-- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
From 8dc48d2e676d1437584794f4df3dd20d08878655 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann <[email protected]> Date: Thu, 5 Mar 2026 09:28:28 +0100 Subject: [PATCH] test for internal fonts by refcount Internal font data is 'static const'. Hence test against the refcount being zero. --- lib/fonts/fonts.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/fonts/fonts.c b/lib/fonts/fonts.c index 198aae869be2..b73d74b977ec 100644 --- a/lib/fonts/fonts.c +++ b/lib/fonts/fonts.c @@ -45,14 +45,11 @@ static struct font_data *to_font_data_struct(font_data_t *fd) static bool font_data_is_internal(font_data_t *fd) { - return is_kernel_rodata((unsigned long)fd); + return !REFCOUNT(fd); /* internal fonts have no reference counting */ } static void font_data_free(font_data_t *fd) { - if (WARN_ON(font_data_is_internal(fd))) - return; - kfree(to_font_data_struct(fd)); } -- 2.53.0
