Date: Wed, 28 Nov 2001 15:19:28 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: Andrew Gallatin <gallatin@cs.duke.edu> Cc: FreeBSD Alpha <freebsd-alpha@FreeBSD.ORG>, Paul Herman <pherman@frenchfries.net> Subject: Re: RE: Message-ID: <XFMail.011128151928.jhb@FreeBSD.org> In-Reply-To: <15365.27710.920163.142231@grasshopper.cs.duke.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On 28-Nov-01 Andrew Gallatin wrote: > > John Baldwin writes: > > > > > > The *(tl + 1) is the problem I think. What is the type of 'tl'? > > > > register u_int32_t *tl; > > > > Ah yes, definitely the problem here. NFS is evil. It's basically > performing > > an unaligned access of a 32-bit integer in the middle of a 64-bit word. > I'm > > not sure what the best way of fixing this is. The bad news is that NFS is > > probably full of such bugs. :( > > Huh? I think the problem is that a u_int32_t is being accessed at a 2 > byte boundary. Ok, I'm an idiot then. I'll retreat. :) > > > (kgdb) print tl > > > $1 = (u_int32_t *) 0xfffffe0000b51c22 > > This is the problem -- 0xfffffe0000b51c22 is on a 2 byte boundary, not > a 4 byte boundary like a u_int32_t should be. Humm. > The question is how did it get there, since the declaration is > correct. The nfsm macros are so twisted & hairy, I get dizzy whenever > I look at them. Something to do with dpos in nfsm_dissect, but.. Peter's untangled them some in -current. Ugh, t1 vs. tl is a pain. What is the value of dpos in these crashes? > Drew -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.011128151928.jhb>