Messages in this thread Patch in this message | | | From | Qiuxu Zhuo <> | Subject | Re: [patch V3 19/40] x86/apic: Use u32 for wakeup_secondary_cpu[_64]() | Date | Thu, 10 Aug 2023 15:58:04 +0800 |
| |
>From: Thomas Gleixner <tglx@linutronix.de> > ... >Subject: [patch V3 19/40] x86/apic: Use u32 for wakeup_secondary_cpu[_64]() > >APIC IDs are used with random data types u16, u32, int, unsigned int, >unsigned long. > >Make it all consistently use u32 because that reflects the hardware >register width. > ...
Hi Thomas,
Seems some other places (see the diff below) may also need to consistently use u32 for APIC IDs. If need me to create a separate patch, please let me know.
-Qiuxu
--- diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index efa8128437cb..723304e9b4cd 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -514,9 +514,9 @@ extern void generic_bigsmp_probe(void); extern struct apic apic_noop; -static inline unsigned int read_apic_id(void) +static inline u32 read_apic_id(void) { - unsigned int reg = apic_read(APIC_ID); + u32 reg = apic_read(APIC_ID); return apic->get_apic_id(reg); } @@ -539,7 +539,7 @@ extern u32 default_cpu_present_to_apicid(int mps_cpu); #else /* CONFIG_X86_LOCAL_APIC */ -static inline unsigned int read_apic_id(void) { return 0; } +static inline u32 read_apic_id(void) { return 0; } #endif /* !CONFIG_X86_LOCAL_APIC */ diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index f63ab86f6d57..9e235b71b14e 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1728,7 +1728,7 @@ static void __x2apic_enable(void) static int __init setup_nox2apic(char *str) { if (x2apic_enabled()) { - int apicid = native_apic_msr_read(APIC_ID); + u32 apicid = native_apic_msr_read(APIC_ID); if (apicid >= 255) { pr_warn("Apicid: %08x, cannot enforce nox2apic\n", @@ -2354,7 +2354,7 @@ static struct { */ int active; /* r/w apic fields */ - unsigned int apic_id; + u32 apic_id; unsigned int apic_taskpri; unsigned int apic_ldr; unsigned int apic_dfr; diff --git a/arch/x86/kernel/apic/ipi.c b/arch/x86/kernel/apic/ipi.c index b54b2a6a4c32..28972a044be2 100644 --- a/arch/x86/kernel/apic/ipi.c +++ b/arch/x86/kernel/apic/ipi.c @@ -280,7 +280,7 @@ void default_send_IPI_mask_logical(const struct cpumask *cpumask, int vector) local_irq_restore(flags); } -static int convert_apicid_to_cpu(int apic_id) +static int convert_apicid_to_cpu(u32 apic_id) { int i; @@ -293,7 +293,8 @@ static int convert_apicid_to_cpu(int apic_id) int safe_smp_processor_id(void) { - int apicid, cpuid; + u32 apicid; + int cpuid; if (!boot_cpu_has(X86_FEATURE_APIC)) return 0;
| |