Lines 2669-2675
Link Here
|
2669 |
/*Some kernel developer removed the export of symbol "flush_tlb_page" on 2.6.25 x86_64 SMP kernel. |
2669 |
/*Some kernel developer removed the export of symbol "flush_tlb_page" on 2.6.25 x86_64 SMP kernel. |
2670 |
Define a simple version here.*/ |
2670 |
Define a simple version here.*/ |
2671 |
#if defined(__x86_64__) && defined(CONFIG_SMP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) |
2671 |
#if defined(__x86_64__) && defined(CONFIG_SMP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)) |
|
|
2672 |
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) |
2673 |
on_each_cpu(KCL_flush_tlb_one, &va, 1); |
2674 |
#else |
2672 |
on_each_cpu(KCL_flush_tlb_one, &va, 1, 1); |
2675 |
on_each_cpu(KCL_flush_tlb_one, &va, 1, 1); |
|
|
2676 |
#endif |
2673 |
#else |
2677 |
#else |
2674 |
flush_tlb_page(vma, va); |
2678 |
flush_tlb_page(vma, va); |
2675 |
#endif |
2679 |
#endif |
Lines 3077-3083
Link Here
|
3077 |
{ |
3081 |
{ |
3078 |
#ifdef CONFIG_SMP |
3082 |
#ifdef CONFIG_SMP |
3079 |
/* write back invalidate all other CPUs (exported by kernel) */ |
3083 |
/* write back invalidate all other CPUs (exported by kernel) */ |
|
|
3084 |
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) |
3085 |
if (smp_call_function(deferred_flush, NULL, 0) != 0) |
3086 |
#else |
3080 |
if (smp_call_function(deferred_flush, NULL, 1, 0) != 0) |
3087 |
if (smp_call_function(deferred_flush, NULL, 1, 0) != 0) |
|
|
3088 |
#endif |
3081 |
panic("timed out waiting for the other CPUs!\n"); |
3089 |
panic("timed out waiting for the other CPUs!\n"); |
3082 |
|
3090 |
|
3083 |
/* invalidate this CPU */ |
3091 |
/* invalidate this CPU */ |
Lines 4796-4803
Link Here
|
4796 |
void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call) |
4804 |
void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call) |
4797 |
{ |
4805 |
{ |
4798 |
#ifdef CONFIG_SMP |
4806 |
#ifdef CONFIG_SMP |
|
|
4807 |
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) |
4808 |
smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 1 ); |
4809 |
#else |
4799 |
smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 ); |
4810 |
smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 ); |
4800 |
#endif |
4811 |
#endif |
|
|
4812 |
#endif |
4801 |
} |
4813 |
} |
4802 |
|
4814 |
|
4803 |
#ifdef FIREGL_USWC_SUPPORT |
4815 |
#ifdef FIREGL_USWC_SUPPORT |
Lines 4910-4916
Link Here
|
4910 |
} |
4922 |
} |
4911 |
|
4923 |
|
4912 |
#ifdef CONFIG_SMP |
4924 |
#ifdef CONFIG_SMP |
|
|
4925 |
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) |
4926 |
if (smp_call_function(KCL_setup_pat, NULL, 1) != 0) |
4927 |
#else |
4913 |
if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0) |
4928 |
if (smp_call_function(KCL_setup_pat, NULL, 0, 1) != 0) |
|
|
4929 |
#endif |
4914 |
return 0; |
4930 |
return 0; |
4915 |
#endif |
4931 |
#endif |
4916 |
KCL_setup_pat(NULL); |
4932 |
KCL_setup_pat(NULL); |
Lines 4929-4935
Link Here
|
4929 |
} |
4945 |
} |
4930 |
|
4946 |
|
4931 |
#ifdef CONFIG_SMP |
4947 |
#ifdef CONFIG_SMP |
|
|
4948 |
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) |
4949 |
if (smp_call_function(KCL_setup_pat, NULL, 1) != 0) |
4950 |
#else |
4932 |
if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0) |
4951 |
if (smp_call_function(KCL_restore_pat, NULL, 0, 1) != 0) |
|
|
4952 |
#endif |
4933 |
return; |
4953 |
return; |
4934 |
#endif |
4954 |
#endif |
4935 |
KCL_restore_pat(NULL); |
4955 |
KCL_restore_pat(NULL); |