Commit 03b486322e994dde49e67aedb391867b7cf28822
Committed by
Ingo Molnar
1 parent
5b221278d6
Exists in
master
and in
20 other branches
x86: make UV support configurable
Make X86 SGI Ultraviolet support configurable. Saves about 13K of text size on my modest config. text data bss dec hex filename 6770537 1158680 694356 8623573 8395d5 vmlinux 6757492 1157664 694228 8609384 835e68 vmlinux.nouv Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 8 changed files with 22 additions and 8 deletions Side-by-side Diff
arch/x86/Kconfig
... | ... | @@ -391,6 +391,13 @@ |
391 | 391 | as R-8610-(G). |
392 | 392 | If you don't have one of these chips, you should say N here. |
393 | 393 | |
394 | +config X86_UV | |
395 | + bool "SGI Ultraviolet" | |
396 | + depends on X86_64 | |
397 | + help | |
398 | + This option is needed in order to support SGI Ultraviolet systems. | |
399 | + If you don't have one of these, you should say N here. | |
400 | + | |
394 | 401 | config SCHED_OMIT_FRAME_POINTER |
395 | 402 | def_bool y |
396 | 403 | prompt "Single-depth WCHAN output" |
arch/x86/include/asm/uv/uv.h
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | |
4 | 4 | enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC}; |
5 | 5 | |
6 | -#ifdef CONFIG_X86_64 | |
6 | +#ifdef CONFIG_X86_UV | |
7 | 7 | |
8 | 8 | extern enum uv_system_type get_uv_system_type(void); |
9 | 9 | extern int is_uv_system(void); |
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | unsigned long va, |
16 | 16 | unsigned int cpu); |
17 | 17 | |
18 | -#else /* X86_64 */ | |
18 | +#else /* X86_UV */ | |
19 | 19 | |
20 | 20 | static inline enum uv_system_type get_uv_system_type(void) { return UV_NONE; } |
21 | 21 | static inline int is_uv_system(void) { return 0; } |
... | ... | @@ -28,7 +28,7 @@ |
28 | 28 | unsigned long va, unsigned int cpu) |
29 | 29 | { return cpumask; } |
30 | 30 | |
31 | -#endif /* X86_64 */ | |
31 | +#endif /* X86_UV */ | |
32 | 32 | |
33 | 33 | #endif /* _ASM_X86_UV_UV_H */ |
arch/x86/kernel/Makefile
... | ... | @@ -115,10 +115,11 @@ |
115 | 115 | ### |
116 | 116 | # 64 bit specific files |
117 | 117 | ifeq ($(CONFIG_X86_64),y) |
118 | - obj-y += genapic_64.o genapic_flat_64.o genx2apic_uv_x.o tlb_uv.o | |
119 | - obj-y += bios_uv.o uv_irq.o uv_sysfs.o | |
118 | + obj-y += genapic_64.o genapic_flat_64.o | |
120 | 119 | obj-y += genx2apic_cluster.o |
121 | 120 | obj-y += genx2apic_phys.o |
121 | + obj-$(CONFIG_X86_UV) += genx2apic_uv_x.o tlb_uv.o | |
122 | + obj-$(CONFIG_X86_UV) += bios_uv.o uv_irq.o uv_sysfs.o | |
122 | 123 | obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o |
123 | 124 | obj-$(CONFIG_AUDIT) += audit_64.o |
124 | 125 |
arch/x86/kernel/efi.c
... | ... | @@ -366,10 +366,12 @@ |
366 | 366 | SMBIOS_TABLE_GUID)) { |
367 | 367 | efi.smbios = config_tables[i].table; |
368 | 368 | printk(" SMBIOS=0x%lx ", config_tables[i].table); |
369 | +#ifdef CONFIG_X86_UV | |
369 | 370 | } else if (!efi_guidcmp(config_tables[i].guid, |
370 | 371 | UV_SYSTEM_TABLE_GUID)) { |
371 | 372 | efi.uv_systab = config_tables[i].table; |
372 | 373 | printk(" UVsystab=0x%lx ", config_tables[i].table); |
374 | +#endif | |
373 | 375 | } else if (!efi_guidcmp(config_tables[i].guid, |
374 | 376 | HCDP_TABLE_GUID)) { |
375 | 377 | efi.hcdp = config_tables[i].table; |
arch/x86/kernel/entry_64.S
... | ... | @@ -982,8 +982,10 @@ |
982 | 982 | irq_move_cleanup_interrupt smp_irq_move_cleanup_interrupt |
983 | 983 | #endif |
984 | 984 | |
985 | +#ifdef CONFIG_X86_UV | |
985 | 986 | apicinterrupt UV_BAU_MESSAGE \ |
986 | 987 | uv_bau_message_intr1 uv_bau_message_interrupt |
988 | +#endif | |
987 | 989 | apicinterrupt LOCAL_TIMER_VECTOR \ |
988 | 990 | apic_timer_interrupt smp_apic_timer_interrupt |
989 | 991 |
arch/x86/kernel/genapic_64.c
arch/x86/kernel/io_apic.c
... | ... | @@ -3765,7 +3765,7 @@ |
3765 | 3765 | } |
3766 | 3766 | #endif /* CONFIG_HT_IRQ */ |
3767 | 3767 | |
3768 | -#ifdef CONFIG_X86_64 | |
3768 | +#ifdef CONFIG_X86_UV | |
3769 | 3769 | /* |
3770 | 3770 | * Re-target the irq to the specified CPU and enable the specified MMR located |
3771 | 3771 | * on the specified blade to allow the sending of MSIs to the specified CPU. |
drivers/misc/Kconfig
... | ... | @@ -170,7 +170,7 @@ |
170 | 170 | config SGI_XP |
171 | 171 | tristate "Support communication between SGI SSIs" |
172 | 172 | depends on NET |
173 | - depends on (IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || X86_64) && SMP | |
173 | + depends on (IA64_GENERIC || IA64_SGI_SN2 || IA64_SGI_UV || X86_UV) && SMP | |
174 | 174 | select IA64_UNCACHED_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 |
175 | 175 | select GENERIC_ALLOCATOR if IA64_GENERIC || IA64_SGI_SN2 |
176 | 176 | select SGI_GRU if (IA64_GENERIC || IA64_SGI_UV || X86_64) && SMP |
... | ... | @@ -197,7 +197,7 @@ |
197 | 197 | |
198 | 198 | config SGI_GRU |
199 | 199 | tristate "SGI GRU driver" |
200 | - depends on (X86_64 || IA64_SGI_UV || IA64_GENERIC) && SMP | |
200 | + depends on (X86_UV || IA64_SGI_UV || IA64_GENERIC) && SMP | |
201 | 201 | default n |
202 | 202 | select MMU_NOTIFIER |
203 | 203 | ---help--- |