* [PATCH] 2/7 Fix potential NULL pointer
@ 2003-02-28 21:33 Martin J. Bligh
0 siblings, 0 replies; only message in thread
From: Martin J. Bligh @ 2003-02-28 21:33 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
translation_table could be unintialised on machines other than NUMA-Q.
You never see this, as the compiler happens to optimise it away, but
it's still a Really Bad Idea (tm). Thanks to someone whose name I have
unfortunately forgotten for pointing this out.
Has been tested in my tree for over two weeks on UP, SMP, and NUMA and
compile tested against a variety of different configs.
diff -urpN -X /home/fletch/.diff.exclude 010-local_pgdat/arch/i386/kernel/mpparse.c 011-mpc_apic_id/arch/i386/kernel/mpparse.c
--- 010-local_pgdat/arch/i386/kernel/mpparse.c Tue Feb 25 23:03:43 2003
+++ 011-mpc_apic_id/arch/i386/kernel/mpparse.c Fri Feb 28 08:05:34 2003
@@ -110,7 +110,7 @@ void __init MP_processor_info (struct mp
if (!(m->mpc_cpuflag & CPU_ENABLED))
return;
- apicid = mpc_apic_id(m, translation_table[mpc_record]->trans_quad);
+ apicid = mpc_apic_id(m, translation_table[mpc_record]);
if (m->mpc_featureflag&(1<<0))
Dprintk(" Floating point unit present.\n");
diff -urpN -X /home/fletch/.diff.exclude 010-local_pgdat/include/asm-i386/mach-bigsmp/mach_apic.h 011-mpc_apic_id/include/asm-i386/mach-bigsmp/mach_apic.h
--- 010-local_pgdat/include/asm-i386/mach-bigsmp/mach_apic.h Fri Jan 17 09:18:31 2003
+++ 011-mpc_apic_id/include/asm-i386/mach-bigsmp/mach_apic.h Fri Feb 28 08:05:34 2003
@@ -87,7 +87,8 @@ static inline int cpu_to_logical_apicid(
return (int)cpu_2_logical_apicid[cpu];
}
-static inline int mpc_apic_id(struct mpc_config_processor *m, int quad)
+static inline int mpc_apic_id(struct mpc_config_processor *m,
+ struct mpc_config_translation *translation_record)
{
printk("Processor #%d %ld:%ld APIC version %d\n",
m->mpc_apicid,
diff -urpN -X /home/fletch/.diff.exclude 010-local_pgdat/include/asm-i386/mach-default/mach_apic.h 011-mpc_apic_id/include/asm-i386/mach-default/mach_apic.h
--- 010-local_pgdat/include/asm-i386/mach-default/mach_apic.h Fri Jan 17 09:18:31 2003
+++ 011-mpc_apic_id/include/asm-i386/mach-default/mach_apic.h Fri Feb 28 08:05:34 2003
@@ -79,7 +79,8 @@ static inline unsigned long apicid_to_cp
return (1ul << phys_apicid);
}
-static inline int mpc_apic_id(struct mpc_config_processor *m, int quad)
+static inline int mpc_apic_id(struct mpc_config_processor *m,
+ struct mpc_config_translation *translation_record)
{
printk("Processor #%d %ld:%ld APIC version %d\n",
m->mpc_apicid,
diff -urpN -X /home/fletch/.diff.exclude 010-local_pgdat/include/asm-i386/mach-numaq/mach_apic.h 011-mpc_apic_id/include/asm-i386/mach-numaq/mach_apic.h
--- 010-local_pgdat/include/asm-i386/mach-numaq/mach_apic.h Fri Jan 17 09:18:31 2003
+++ 011-mpc_apic_id/include/asm-i386/mach-numaq/mach_apic.h Fri Feb 28 08:05:34 2003
@@ -73,8 +73,10 @@ static inline unsigned long apicid_to_cp
return ( (logical_apicid&0xf) << (4*apicid_to_node(logical_apicid)) );
}
-static inline int mpc_apic_id(struct mpc_config_processor *m, int quad)
+static inline int mpc_apic_id(struct mpc_config_processor *m,
+ struct mpc_config_translation *translation_record)
{
+ int quad = translation_record->trans_quad;
int logical_apicid = generate_logical_apicid(quad, m->mpc_apicid);
printk("Processor #%d %ld:%ld APIC version %d (quad %d, apic %d)\n",
diff -urpN -X /home/fletch/.diff.exclude 010-local_pgdat/include/asm-i386/mach-summit/mach_apic.h 011-mpc_apic_id/include/asm-i386/mach-summit/mach_apic.h
--- 010-local_pgdat/include/asm-i386/mach-summit/mach_apic.h Sat Feb 15 16:11:45 2003
+++ 011-mpc_apic_id/include/asm-i386/mach-summit/mach_apic.h Fri Feb 28 08:05:34 2003
@@ -90,7 +90,8 @@ static inline unsigned long apicid_to_cp
return (1ul << apicid);
}
-static inline int mpc_apic_id(struct mpc_config_processor *m, int quad)
+static inline int mpc_apic_id(struct mpc_config_processor *m,
+ struct mpc_config_translation *translation_record)
{
printk("Processor #%d %ld:%ld APIC version %d\n",
m->mpc_apicid,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-02-28 21:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-28 21:33 [PATCH] 2/7 Fix potential NULL pointer Martin J. Bligh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.