lkml.org 
[lkml]   [2008]   [Oct]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: mmotm 2008-10-02-16-17 uploaded
On Wed, 8 Oct 2008 08:47:53 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

> On Tue, 07 Oct 2008 09:18:03 -0700
> Yinghai Lu <yinghai@kernel.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

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.


\
 
 \ /
  Last update: 2008-10-08 02:03    [W:0.075 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site