--- firegl_public.c.ORIG 2008-10-13 22:02:39.000000000 +0200 +++ firegl_public.c 2008-10-13 22:06:29.000000000 +0200 @@ -2517,7 +2517,13 @@ /*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(__SMP__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) +// Mr Hyde BEGIN +#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 +// Mr Hyde END #else flush_tlb_page(vma, va); #endif @@ -2924,7 +2930,13 @@ { #ifdef __SMP__ /* write back invalidate all other CPUs (exported by kernel) */ +// Mr Hyde BEGIN +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) if (smp_call_function(deferred_flush, NULL, 1, 0) != 0) +#else + if (smp_call_function(deferred_flush, NULL, 0) != 0) +#endif +// Mr Hyde END panic("timed out waiting for the other CPUs!\n"); /* invalidate this CPU */ @@ -4654,7 +4666,13 @@ } #ifdef CONFIG_SMP +// Mr Hyde BEGIN +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0) +#else + if (smp_call_function(KCL_setup_pat, NULL, 1) != 0) +#endif +// Mr Hyde END return 0; #endif KCL_setup_pat(NULL); @@ -4673,7 +4691,13 @@ } #ifdef CONFIG_SMP +// Mr Hyde BEGIN +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0) +#else + if (smp_call_function(KCL_restore_pat, NULL, 1) != 0) +#endif +// Mr Hyde END return; #endif KCL_restore_pat(NULL);