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