[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20081008084753.f1a4fc2e.kamezawa.hiroyu@jp.fujitsu.com>
Date: Wed, 8 Oct 2008 08:47:53 +0900
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
To: Yinghai Lu <yinghai@...nel.org>
Cc: "mingo@...e.hu" <mingo@...e.hu>, linux-kernel@...r.kernel.org,
akpm@...ux-foundation.org
Subject: Re: mmotm 2008-10-02-16-17 uploaded
On Tue, 07 Oct 2008 09:18:03 -0700
Yinghai Lu <yinghai@...nel.org> 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
>
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.
Thanks,
-Kame
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists