x86: clean up apic->acpi_madt_oem_check methods
Impact: refactor code x86 subarchitectures each defined a "acpi_madt_oem_check()" method, which could be an inline function, or an extern, or a static function, and which was also the name of a genapic field. Untangle this namespace spaghetti by setting ->acpi_madt_oem_check() to NULL on those subarchitectures that have no detection quirks, and rename the other ones (summit, es7000) that do. Also change default_acpi_madt_oem_check() to handle NULL entries, and clean its control flow up as well. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
9a6801da55
commit
306db03b0d
|
@ -9,7 +9,7 @@ extern void unmap_unisys_acpi_oem_table(unsigned long oem_addr);
|
|||
extern void setup_unisys(void);
|
||||
|
||||
#ifndef CONFIG_X86_GENERICARCH
|
||||
extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
|
||||
extern int default_acpi_madt_oem_check(char *oem_id, char *oem_table_id);
|
||||
extern int mps_oem_check(struct mpc_table *mpc, char *oem, char *productid);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ extern struct genapic apic_flat;
|
|||
extern struct genapic apic_physflat;
|
||||
extern struct genapic apic_x2apic_cluster;
|
||||
extern struct genapic apic_x2apic_phys;
|
||||
extern int acpi_madt_oem_check(char *, char *);
|
||||
extern int default_acpi_madt_oem_check(char *, char *);
|
||||
|
||||
extern void apic_send_IPI_self(int vector);
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
|
|||
}
|
||||
|
||||
/* Hook from generic ACPI tables.c */
|
||||
static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
static inline int default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
|
||||
extern int mps_oem_check(struct mpc_table *, char *, char *);
|
||||
|
||||
extern int acpi_madt_oem_check(char *, char *);
|
||||
extern int default_acpi_madt_oem_check(char *, char *);
|
||||
|
||||
#endif /* _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H */
|
||||
|
|
|
@ -27,7 +27,7 @@ static inline int mps_oem_check(struct mpc_table *mpc, char *oem,
|
|||
}
|
||||
|
||||
/* Hook from generic ACPI tables.c */
|
||||
static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
static inline int summit_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
if (!strncmp(oem_id, "IBM", 3) &&
|
||||
(!strncmp(oem_table_id, "SERVIGIL", 8)
|
||||
|
|
|
@ -239,7 +239,8 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
|
|||
madt->address);
|
||||
}
|
||||
|
||||
acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id);
|
||||
default_acpi_madt_oem_check(madt->header.oem_id,
|
||||
madt->header.oem_table_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ void apic_send_IPI_self(int vector)
|
|||
__send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
|
||||
}
|
||||
|
||||
int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ struct genapic apic_bigsmp = {
|
|||
|
||||
.name = "bigsmp",
|
||||
.probe = probe_bigsmp,
|
||||
.acpi_madt_oem_check = acpi_madt_oem_check,
|
||||
.acpi_madt_oem_check = NULL,
|
||||
.apic_id_registered = apic_id_registered,
|
||||
|
||||
.int_delivery_mode = INT_DELIVERY_MODE,
|
||||
|
|
|
@ -28,7 +28,7 @@ struct genapic apic_default = {
|
|||
|
||||
.name = "default",
|
||||
.probe = probe_default,
|
||||
.acpi_madt_oem_check = acpi_madt_oem_check,
|
||||
.acpi_madt_oem_check = NULL,
|
||||
.apic_id_registered = apic_id_registered,
|
||||
|
||||
.int_delivery_mode = INT_DELIVERY_MODE,
|
||||
|
|
|
@ -57,7 +57,7 @@ mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
|
|||
|
||||
#ifdef CONFIG_ACPI
|
||||
/* Hook from generic ACPI tables.c */
|
||||
static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
unsigned long oem_addr = 0;
|
||||
int check_dsdt;
|
||||
|
@ -81,7 +81,7 @@ static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|||
return ret;
|
||||
}
|
||||
#else
|
||||
static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ struct genapic apic_es7000 = {
|
|||
|
||||
.name = "es7000",
|
||||
.probe = probe_es7000,
|
||||
.acpi_madt_oem_check = acpi_madt_oem_check,
|
||||
.acpi_madt_oem_check = es7000_acpi_madt_oem_check,
|
||||
.apic_id_registered = apic_id_registered,
|
||||
|
||||
.int_delivery_mode = INT_DELIVERY_MODE,
|
||||
|
|
|
@ -31,12 +31,6 @@ static int probe_numaq(void)
|
|||
return found_numaq;
|
||||
}
|
||||
|
||||
/* Hook from generic ACPI tables.c */
|
||||
static int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void vector_allocation_domain(int cpu, cpumask_t *retmask)
|
||||
{
|
||||
/* Careful. Some cpus do not strictly honor the set of cpus
|
||||
|
@ -54,7 +48,7 @@ struct genapic apic_numaq = {
|
|||
|
||||
.name = "NUMAQ",
|
||||
.probe = probe_numaq,
|
||||
.acpi_madt_oem_check = acpi_madt_oem_check,
|
||||
.acpi_madt_oem_check = NULL,
|
||||
.apic_id_registered = apic_id_registered,
|
||||
|
||||
.int_delivery_mode = INT_DELIVERY_MODE,
|
||||
|
|
|
@ -128,20 +128,24 @@ int __init mps_oem_check(struct mpc_table *mpc, char *oem, char *productid)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; apic_probe[i]; ++i) {
|
||||
if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) {
|
||||
if (!cmdline_apic) {
|
||||
apic = apic_probe[i];
|
||||
if (x86_quirks->update_genapic)
|
||||
x86_quirks->update_genapic();
|
||||
printk(KERN_INFO "Switched to APIC driver `%s'.\n",
|
||||
apic->name);
|
||||
}
|
||||
return 1;
|
||||
if (!apic_probe[i]->acpi_madt_oem_check)
|
||||
continue;
|
||||
if (!apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id))
|
||||
continue;
|
||||
|
||||
if (!cmdline_apic) {
|
||||
apic = apic_probe[i];
|
||||
if (x86_quirks->update_genapic)
|
||||
x86_quirks->update_genapic();
|
||||
printk(KERN_INFO "Switched to APIC driver `%s'.\n",
|
||||
apic->name);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ struct genapic apic_summit = {
|
|||
|
||||
.name = "summit",
|
||||
.probe = probe_summit,
|
||||
.acpi_madt_oem_check = acpi_madt_oem_check,
|
||||
.acpi_madt_oem_check = summit_acpi_madt_oem_check,
|
||||
.apic_id_registered = apic_id_registered,
|
||||
|
||||
.int_delivery_mode = INT_DELIVERY_MODE,
|
||||
|
|
Loading…
Reference in New Issue