提交 49040333 编写于 作者: I Ingo Molnar

x86: refactor ->enable_apic_mode() subarch methods

Only ES7000 has a real ->enable_apic_mode() method, the other
subarchitectures define it but keep it empty.

So mark the vector as NULL, extend the generic code to handle
NULL -setup_portio_remap() entries and remove all the empty
handlers.
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 a27a6210
...@@ -104,10 +104,6 @@ static inline int bigsmp_check_phys_apicid_present(int boot_cpu_physical_apicid) ...@@ -104,10 +104,6 @@ static inline int bigsmp_check_phys_apicid_present(int boot_cpu_physical_apicid)
return 1; return 1;
} }
static inline void enable_apic_mode(void)
{
}
/* As we are using single CPU as destination, pick only one CPU here */ /* As we are using single CPU as destination, pick only one CPU here */
static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask) static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
{ {
......
...@@ -145,8 +145,5 @@ static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid) ...@@ -145,8 +145,5 @@ static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid)
return physid_mask_of_physid(phys_apicid); return physid_mask_of_physid(phys_apicid);
} }
static inline void enable_apic_mode(void)
{
}
#endif /* CONFIG_X86_LOCAL_APIC */ #endif /* CONFIG_X86_LOCAL_APIC */
#endif /* _ASM_X86_MACH_DEFAULT_MACH_APIC_H */ #endif /* _ASM_X86_MACH_DEFAULT_MACH_APIC_H */
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#define cpu_mask_to_apicid (apic->cpu_mask_to_apicid) #define cpu_mask_to_apicid (apic->cpu_mask_to_apicid)
#define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and) #define cpu_mask_to_apicid_and (apic->cpu_mask_to_apicid_and)
#define enable_apic_mode (apic->enable_apic_mode)
#define phys_pkg_id (apic->phys_pkg_id) #define phys_pkg_id (apic->phys_pkg_id)
#define wakeup_secondary_cpu (apic->wakeup_cpu) #define wakeup_secondary_cpu (apic->wakeup_cpu)
......
...@@ -97,10 +97,6 @@ static inline int numaq_check_phys_apicid_present(int boot_cpu_physical_apicid) ...@@ -97,10 +97,6 @@ static inline int numaq_check_phys_apicid_present(int boot_cpu_physical_apicid)
return 1; return 1;
} }
static inline void enable_apic_mode(void)
{
}
/* /*
* We use physical apicids here, not logical, so just return the default * We use physical apicids here, not logical, so just return the default
* physical broadcast to stop people from breaking us * physical broadcast to stop people from breaking us
......
...@@ -125,10 +125,6 @@ static inline int summit_check_phys_apicid_present(int boot_cpu_physical_apicid) ...@@ -125,10 +125,6 @@ static inline int summit_check_phys_apicid_present(int boot_cpu_physical_apicid)
return 1; return 1;
} }
static inline void enable_apic_mode(void)
{
}
static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask) static inline unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
{ {
int num_bits_set; int num_bits_set;
......
...@@ -1763,7 +1763,8 @@ void __init connect_bsp_APIC(void) ...@@ -1763,7 +1763,8 @@ void __init connect_bsp_APIC(void)
outb(0x01, 0x23); outb(0x01, 0x23);
} }
#endif #endif
enable_apic_mode(); if (apic->enable_apic_mode)
apic->enable_apic_mode();
} }
/** /**
......
...@@ -86,7 +86,7 @@ struct genapic apic_bigsmp = { ...@@ -86,7 +86,7 @@ struct genapic apic_bigsmp = {
.apicid_to_cpu_present = bigsmp_apicid_to_cpu_present, .apicid_to_cpu_present = bigsmp_apicid_to_cpu_present,
.setup_portio_remap = NULL, .setup_portio_remap = NULL,
.check_phys_apicid_present = bigsmp_check_phys_apicid_present, .check_phys_apicid_present = bigsmp_check_phys_apicid_present,
.enable_apic_mode = enable_apic_mode, .enable_apic_mode = NULL,
.phys_pkg_id = phys_pkg_id, .phys_pkg_id = phys_pkg_id,
.mps_oem_check = mps_oem_check, .mps_oem_check = mps_oem_check,
......
...@@ -67,7 +67,7 @@ struct genapic apic_default = { ...@@ -67,7 +67,7 @@ struct genapic apic_default = {
.apicid_to_cpu_present = default_apicid_to_cpu_present, .apicid_to_cpu_present = default_apicid_to_cpu_present,
.setup_portio_remap = NULL, .setup_portio_remap = NULL,
.check_phys_apicid_present = default_check_phys_apicid_present, .check_phys_apicid_present = default_check_phys_apicid_present,
.enable_apic_mode = enable_apic_mode, .enable_apic_mode = NULL,
.phys_pkg_id = phys_pkg_id, .phys_pkg_id = phys_pkg_id,
.mps_oem_check = mps_oem_check, .mps_oem_check = mps_oem_check,
......
...@@ -36,10 +36,10 @@ static int probe_es7000(void) ...@@ -36,10 +36,10 @@ static int probe_es7000(void)
} }
extern void es7000_sw_apic(void); extern void es7000_sw_apic(void);
static void __init enable_apic_mode(void)
static void __init es7000_enable_apic_mode(void)
{ {
es7000_sw_apic(); es7000_sw_apic();
return;
} }
static __init int static __init int
...@@ -128,7 +128,7 @@ struct genapic apic_es7000 = { ...@@ -128,7 +128,7 @@ struct genapic apic_es7000 = {
.apicid_to_cpu_present = es7000_apicid_to_cpu_present, .apicid_to_cpu_present = es7000_apicid_to_cpu_present,
.setup_portio_remap = NULL, .setup_portio_remap = NULL,
.check_phys_apicid_present = es7000_check_phys_apicid_present, .check_phys_apicid_present = es7000_check_phys_apicid_present,
.enable_apic_mode = enable_apic_mode, .enable_apic_mode = es7000_enable_apic_mode,
.phys_pkg_id = phys_pkg_id, .phys_pkg_id = phys_pkg_id,
.mps_oem_check = mps_oem_check, .mps_oem_check = mps_oem_check,
......
...@@ -86,7 +86,7 @@ struct genapic apic_numaq = { ...@@ -86,7 +86,7 @@ struct genapic apic_numaq = {
.apicid_to_cpu_present = numaq_apicid_to_cpu_present, .apicid_to_cpu_present = numaq_apicid_to_cpu_present,
.setup_portio_remap = numaq_setup_portio_remap, .setup_portio_remap = numaq_setup_portio_remap,
.check_phys_apicid_present = numaq_check_phys_apicid_present, .check_phys_apicid_present = numaq_check_phys_apicid_present,
.enable_apic_mode = enable_apic_mode, .enable_apic_mode = NULL,
.phys_pkg_id = phys_pkg_id, .phys_pkg_id = phys_pkg_id,
.mps_oem_check = mps_oem_check, .mps_oem_check = mps_oem_check,
......
...@@ -66,7 +66,7 @@ struct genapic apic_summit = { ...@@ -66,7 +66,7 @@ struct genapic apic_summit = {
.apicid_to_cpu_present = summit_apicid_to_cpu_present, .apicid_to_cpu_present = summit_apicid_to_cpu_present,
.setup_portio_remap = NULL, .setup_portio_remap = NULL,
.check_phys_apicid_present = summit_check_phys_apicid_present, .check_phys_apicid_present = summit_check_phys_apicid_present,
.enable_apic_mode = enable_apic_mode, .enable_apic_mode = NULL,
.phys_pkg_id = phys_pkg_id, .phys_pkg_id = phys_pkg_id,
.mps_oem_check = mps_oem_check, .mps_oem_check = mps_oem_check,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册