Undefined behaviour with get_cpu_vendor

From: Christian Ehrhardt
Date: Wed Aug 17 2005 - 04:58:47 EST



Hi,

Your Patch at (URL wrapped)

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git; \
a=commit;h=99c6e60afff8a7bc6121aeb847dab27c556cf0c9

introduced an additional Parameter (int early) to get_cpu_vendor.
However, the same function is called in arch/i386/kernel/apic.c (via
an explicit extern declaration that doesn't have the new early parameter.

I don't know if this can cause actual problems but I think something like
the patch below is needed for correctness.

regards Christian

--- arch/i386/kernel/apic.c 2005-03-26 04:28:38.000000000 +0100
+++ arch/i386/kernel/apic.c.new 2005-08-17 11:54:48.070499352 +0200
@@ -703,14 +703,14 @@
static int __init detect_init_APIC (void)
{
u32 h, l, features;
- extern void get_cpu_vendor(struct cpuinfo_x86*);
+ extern void get_cpu_vendor(struct cpuinfo_x86*, int);

/* Disabled by kernel option? */
if (enable_local_apic < 0)
return -1;

/* Workaround for us being called before identify_cpu(). */
- get_cpu_vendor(&boot_cpu_data);
+ get_cpu_vendor(&boot_cpu_data, 1);

switch (boot_cpu_data.x86_vendor) {
case X86_VENDOR_AMD:


--
THAT'S ALL FOLKS!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/