diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/setup.c | 6 |
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 | |||
696 | get_max_cacheline_size (void) | 696 | get_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 | } |