Re: mmotm 2008-10-02-16-17 uploaded

From: Andrew Morton
Date: Tue Oct 07 2008 - 20:01:42 EST


On Wed, 8 Oct 2008 08:47:53 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> On Tue, 07 Oct 2008 09:18:03 -0700
> Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
>
> > KAMEZAWA Hiroyuki wrote:
> > > I'm sorry if alread fixed.
> > >
> > > Folloing function in git-x86.patch touches invalid address.
> > > ==
> > > +void __init early_cpu_init(void)
> > > +{
> > > + struct cpu_dev **cdev;
> > > + int count = 0;
> > > +
> > > + printk("KERNEL supported cpus:\n");
> > > + for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
> > > + struct cpu_dev *cpudev = *cdev;
> > > + unsigned int j;
> > > +
> > > + if (count >= X86_VENDOR_NUM)
> > > + break;
> > > + cpu_devs[count] = cpudev;
> > > + count++;
> > > +
> > > + for (j = 0; j < 2; j++) {
> > > + if (!cpudev->c_ident[j])
> > > + continue;
> > > + printk(" %s %s\n", cpudev->c_vendor,
> > > + cpudev->c_ident[j]);
> > > + }
> > > + }
> > > +
> > > + early_identify_cpu(&boot_cpu_data);
> > > }
> > > ==
> > > printk(" %s %s\n", cpudev->c_vendor, cpudev->c_ident[j]);
> > > touches invalid address. (following is printk() result by
> > > replacing %s with %p.
> > > ==
> > > ffffffff8066e38a ffffffff8066e383
> > > ffffffff8066e3ab ffffffff8066e3a2
> > > ffffffff8066e3af ffffffff8066e3b7
> > > 807064c0c7c74855 08ec834853e58948
> > > 807064c0c7c74855 74c085fffffe9fe8
> > > ==
> > > and the kernel never boots on my box.
> >
> > could be merging problem again.
> >
> > please check in arch/x86/kernel/vmliux_64.lds.S
> >
> > it should be like
> >
> > __con_initcall_end = .;
> > __x86_cpu_dev_start = .;
> > .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
> > *(.x86_cpu_dev.init)
> > }
> > __x86_cpu_dev_end = .;
> >
> > DYN_ARRAY_INIT(8)
> >
> > SECURITY_INIT

The above is what's presently in Ingo's "tip" tree.

> Oh, yes. like this.
> ==
> __con_initcall_end = .;
> __x86_cpu_dev_start = .;
> .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
> *(.x86_cpu_dev.init)
> }
> SECURITY_INIT
> __x86_cpu_dev_end = .;
> ==
>
> I'll try next version when it comes.

If that fixes it then Ingo's tree will need fixing too, I suppose.
--
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/