aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/kernel/setup.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index d91c8ff2c0d7..0daa8fa9ef32 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -696,6 +696,7 @@ static void
696get_max_cacheline_size (void) 696get_max_cacheline_size (void)
697{ 697{
698 unsigned long line_size, max = 1; 698 unsigned long line_size, max = 1;
699 unsigned int cache_size = 0;
699 u64 l, levels, unique_caches; 700 u64 l, levels, unique_caches;
700 pal_cache_config_info_t cci; 701 pal_cache_config_info_t cci;
701 s64 status; 702 s64 status;
@@ -725,6 +726,8 @@ get_max_cacheline_size (void)
725 line_size = 1 << cci.pcci_line_size; 726 line_size = 1 << cci.pcci_line_size;
726 if (line_size > max) 727 if (line_size > max)
727 max = line_size; 728 max = line_size;
729 if (cache_size < cci.pcci_cache_size)
730 cache_size = cci.pcci_cache_size;
728 if (!cci.pcci_unified) { 731 if (!cci.pcci_unified) {
729 status = ia64_pal_cache_config_info(l, 732 status = ia64_pal_cache_config_info(l,
730 /* cache_type (instruction)= */ 1, 733 /* cache_type (instruction)= */ 1,
@@ -741,6 +744,9 @@ get_max_cacheline_size (void)
741 ia64_i_cache_stride_shift = cci.pcci_stride; 744 ia64_i_cache_stride_shift = cci.pcci_stride;
742 } 745 }
743 out: 746 out:
747#ifdef CONFIG_SMP
748 max_cache_size = max(max_cache_size, cache_size);
749#endif
744 if (max > ia64_max_cacheline_size) 750 if (max > ia64_max_cacheline_size)
745 ia64_max_cacheline_size = max; 751 ia64_max_cacheline_size = max;
746} 752}