Skip site navigation (1)Skip section navigation (2)
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>