Date: Wed, 28 Nov 2001 17:59:10 -0500 (EST) From: Andrew Gallatin <gallatin@cs.duke.edu> To: John Baldwin <jhb@FreeBSD.ORG> Cc: Paul Herman <pherman@frenchfries.net>, FreeBSD Alpha <freebsd-alpha@FreeBSD.ORG> Subject: Re: RE: Message-ID: <15365.27710.920163.142231@grasshopper.cs.duke.edu> In-Reply-To: <XFMail.011128144730.jhb@FreeBSD.org> References: <200111282233.fASMXUA01849@tick.sc.omation.com> <XFMail.011128144730.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. > > (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. 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.. Drew 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?15365.27710.920163.142231>