Package: fglrx-driver Version: 1:8-7-2 Severity: normal Tags: patch Hi,
Please find attached a patch to help the build of fglrx-driver against 2.6.27-rc3-686: CC [M] /usr/src/modules/fglrx/firegl_public.o /usr/src/modules/fglrx/firegl_public.c: In function ‘__ke_flush_cache’: /usr/src/modules/fglrx/firegl_public.c:3240: error: too many arguments to function ‘smp_call_function’ However after the patch, linking fails with: FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'pv_lock_ops' This is fixed upstream in: commit 7946612de2087e163308e26034286fc2dc9dacf1 Author: Jeremy Fitzhardinge <[EMAIL PROTECTED]> Date: Wed Aug 20 11:31:07 2008 -0700 x86: export pv_lock_ops non-GPL None of the spinlock API is exported GPL, so there's no reason for pv_lock_ops to be. Signed-off-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]> Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]> Cc: drago01 <[EMAIL PROTECTED]> Bye -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages fglrx-driver depends on: ii fglrx-glx 1:8-7-2 proprietary libGL for the non-free ii libc6 2.7-13 GNU C Library: Shared libraries ii libgl1-mesa-glx [libgl1] 7.0.3-5 A free implementation of the OpenG ii libx11-6 2:1.1.4-2 X11 client-side library ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar ii libxrandr2 2:1.2.3-1 X11 RandR extension library ii libxrender1 1:0.9.4-2 X Rendering Extension client libra ii xserver-xorg 1:7.3+15 the X.Org X server Versions of packages fglrx-driver recommends: ii fglrx-atieventsd 1:8-7-2 external events daemon for the non ii fglrx-glx 1:8-7-2 proprietary libGL for the non-free ii fglrx-kernel-2.6.26-1-6 1:8-7-2+2.6.26-2 ATI binary kernel module for Linux ii fglrx-source 1:8-7-2 kernel module source for the non-f Versions of packages fglrx-driver suggests: ii fglrx-control 1:8-7-2 control panel for the non-free AMD -- no debconf information -- Loïc Minier
--- firegl_public.c +++ firegl_public.c @@ -207,6 +207,13 @@ #define preempt_enable() #endif +/* Since 2.6.27 smp_call_function doesn't have a nonatomic/retry argument */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) +#define SMP_CALL_FUNCTION(func, info, retry, wait) smp_call_function(func, info, wait) +#else +#define SMP_CALL_FUNCTION(func, info, retry, wait) smp_call_function(func, info, retry, wait) +#endif + // ============================================================ /* globals */ @@ -3237,7 +3244,7 @@ int ATI_API_CALL __ke_flush_cache(void) { #ifdef CONFIG_SMP /* write back invalidate all other CPUs (exported by kernel) */ - if (smp_call_function(deferred_flush, NULL, 1, 0) != 0) + if (SMP_CALL_FUNCTION(deferred_flush, NULL, 1, 0) != 0) panic("timed out waiting for the other CPUs!\n"); /* invalidate this CPU */ @@ -4832,7 +4839,7 @@ struct _agp_memory* ATI_API_CALL __ke_agp_allocate_memory_phys_list( void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call) { #ifdef CONFIG_SMP - smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 ); + SMP_CALL_FUNCTION( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 ); #endif } @@ -4943,7 +4950,7 @@ static int ATI_API_CALL KCL_enable_pat(void) } #ifdef CONFIG_SMP - if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0) + if (SMP_CALL_FUNCTION(KCL_setup_pat, NULL, 0, 1) != 0) return 0; #endif KCL_setup_pat(NULL); @@ -4961,7 +4968,7 @@ static void ATI_API_CALL KCL_disable_pat(void) } #ifdef CONFIG_SMP - if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0) + if (SMP_CALL_FUNCTION(KCL_restore_pat, NULL, 0, 1) != 0) return; #endif KCL_restore_pat(NULL);