Re: [patch -mm4] i386 cpu hotplug: don't access freed memory

From: Chuck Ebbert
Date: Fri Feb 03 2006 - 02:06:12 EST


In-Reply-To: <20060202165257.29dcfa20.akpm@xxxxxxxx>

On Thu, 2 Feb 2006 at 16:52:57 -0800, Andrew Morton wrote:

> Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx> wrote:
> >
> > @@ -160,10 +162,17 @@ static void __cpuinit get_cpu_vendor(str
> > c->x86_vendor = i;
> > if (!early)
> > this_cpu = cpu_devs[i];
> > - break;
> > + return;
> > }
> > }
> > }
> > + if (!printed) {
> > + printed++;
> > + printk(KERN_ERR "CPU: Vendor unknown, using generic init.\n");
> > + printk(KERN_ERR "CPU: Your system may be unstable.\n");
> > + }
> > + c->x86_vendor = X86_VENDOR_UNKNOWN;
> > + this_cpu = &default_cpu;
>
> Well that's a worry. Under what circumstances (if any) will this final bit
> of code get executed?

It should happen when someone hotplugs a CPU on an AMD SMP machine. But it
was already broken in that case.

So now we have to decide whether to make the AMD code __cpuinit instead
of __init and keep it around for hotplug. I can't test that so I didn't
try it.

--
Chuck

-
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/