--- common.orig/lib/modules/fglrx/build_mod/firegl_public.c 2008-10-01 09:54:59.000000000 +0200 +++ common/lib/modules/fglrx/build_mod/firegl_public.c 2008-10-01 09:58:20.000000000 +0200 @@ -2517,7 +2517,11 @@ /*Some kernel developer removed the export of symbol "flush_tlb_page" on 2.6.25 x86_64 SMP kernel. Define a simple version here.*/ #if defined(__x86_64__) && defined(CONFIG_SMP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) + on_each_cpu(KCL_flush_tlb_one, &va, 1); +#else on_each_cpu(KCL_flush_tlb_one, &va, 1, 1); +#endif #else flush_tlb_page(vma, va); #endif @@ -2924,7 +2928,11 @@ { #ifdef CONFIG_SMP /* write back invalidate all other CPUs (exported by kernel) */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) + if (smp_call_function(deferred_flush, NULL, 0) != 0) +#else if (smp_call_function(deferred_flush, NULL, 1, 0) != 0) +#endif panic("timed out waiting for the other CPUs!\n"); /* invalidate this CPU */ @@ -4654,7 +4662,11 @@ } #ifdef CONFIG_SMP +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) + if (smp_call_function(KCL_setup_pat, NULL, 1) != 0) +#else if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0) +#endif return 0; #endif KCL_setup_pat(NULL); @@ -4673,7 +4685,11 @@ } #ifdef CONFIG_SMP +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) + if (smp_call_function(KCL_setup_pat, NULL, 1) != 0) +#else if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0) +#endif return; #endif KCL_restore_pat(NULL);