Nvidia-drivers-545.29.06 failed to build on Linux 6.7.0 on ARM64

When I build nvidia-drivers-545.29.06 on Linux 6.7.0 on ARM64, I get
ERROR: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'screen_info'
Because the kernel just set screen_info to GPL symbol on non x86 platform.

/drivers/firmware/efi/efi-init.c:
/*

* x86 defines its own screen_info and uses it even without EFI,

* everything else can get it from here.

*/

#if !defined(CONFIG_X86) && (defined(CONFIG_SYSFB) || defined(CONFIG_EFI_EARLYCON))

struct screen_info screen_info __section(".data");

EXPORT_SYMBOL_GPL(screen_info);

#endif

I just created a patch to bypass this error on my headless home lab server.

diff -ur a/kernel/conftest.sh b/kernel/conftest.sh
--- a/kernel/conftest.sh	2023-11-16 02:31:55.000000000 +0100
+++ b/kernel/conftest.sh	2024-01-17 01:57:12.504858914 +0100
@@ -316,6 +316,14 @@
     SYMBOL="$1"
     TAB='	'
 
+    ARCH=$(uname -m)
+    
+    if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "i386" ] && [ "$SYMBOL" = "screen_info" ]; then
+        echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_screen_info 0" |
+        append_conftest "symbols"
+        return
+    fi
+
     if grep -e "${TAB}${SYMBOL}${TAB}.*${TAB}EXPORT_SYMBOL\(_GPL\)\?\s*\$" \
                "$OUTPUT/Module.symvers" >/dev/null 2>&1; then
         echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_$SYMBOL 1" |