Date: Tue, 10 Jun 2003 11:27:35 +0200 From: Alan Robinson <alan.robinson@fujitsu-siemens.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: freebsd-ia64@freebsd.org Subject: Re: DDB and SMP causes Unaligned Reference Message-ID: <20030610112735.A20041@fujitsu-siemens.com> In-Reply-To: <20030610105306.A18863@fujitsu-siemens.com>; 10:53:06AM %2B0200 References: <20030606183130.A19592@fujitsu-siemens.com> <20030606182015.GC569@dhcp01.pn.xcllnt.net> <20030610105306.A18863@fujitsu-siemens.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jun 10, 2003 at 10:53:06AM +0200, Alan Robinson wrote: > On Fri, Jun 06, 2003 at 11:20:15AM -0700, Marcel Moolenaar wrote: > > > > We don't set pc_pcb on ia64. The line above should read: > > savectx(curthread->td_pcb); > > > Tried it. > > > > Try it and let me know if it works. I'll commit it then. > > > Works. > Works. > (It still causes the strange double entry into DDB) > > It would also be a good idea to remove the unneeded pc_pcb line with its > incorrect comment from src/sys/ia64/include/pcpu.h > I deleted the pc_pcb line from src/sys/ia64/include/pcpu.h and much to my surprise got a compile error in src/sys/ia64/ia64/machdep.c where the function cpu_pcpu_init does indeed set pc_pcb: void cpu_pcpu_init(struct pcpu *pcpu, int cpuid, size_t size) { KASSERT(size >= sizeof(struct pcpu) + sizeof(struct pcb), ("%s: too small an allocation for pcpu", __func__)); pcpu->pc_pcb = (void*)(pcpu+1); } so much for it not being set!. It is set, just the alignment of struct pcb is wrong. Is your suggested (and working) change > > savectx(curthread->td_pcb); still correct ? Alan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030610112735.A20041>