Re: [SOLVED + PATCH]: documented Oops running big-endian reiserfs on parisc architecture

Jeff Mahoney (jeffm@suse.com)
Tue, 4 Sep 2001 08:50:23 -0400


On Tue, Sep 04, 2001 at 11:44:30AM +0200, Andi Kleen wrote:
> Jeff Mahoney <jeffm@suse.com> writes:
>
>
> > I did kick around the idea of making those macros the default accessors for
> > the deh_state member (which is the only place they're used), but it unfairly
> > penalizes arches that don't need them.
>
> On archs that don't need them {get,put}_unaligned should be just normal
> assignments. They are certainly on i386.

Sorry, I guess I wasn't clear.

When I mentioned "make those macros the default ..", I was referring to the
reiserfs-defined macros, not the asm/unaligned.h macros.

In my previous message, I had mentioned that the get/put _unaligned macros
from asm/unaligned.h don't work in all cases. Specifically, the S/390 (and
S/390x) versions won't work with ReiserFS, since they're nothing more than
a normal access/mutate put into a compatible macro. Through testing on the
S/390{,x}, I found that using the reiserfs-defined unaligned macros did the
trick. The only place these reiserfs-defined macros are used is to
access/mutate the reiserfs_de_head->deh_state member, which contains flags
for the on-disk directory entry representation.

Are the S/390 asm/unaligned.h versions broken, or is the ReiserFS code doing
something not planned for? It's a 16-bit member, at a 16-bit alignment
in the structure. The structure itself need not be aligned in any
particular manner as it is read directly from disk, and is a packed structure.

-Jeff

-- 
Jeff Mahoney           |   "Bill Gates is a monocle and a Persian cat away
jeffm@suse.com         |    from being the villain in a James Bond movie."
jeffm@csh.rit.edu      |                   -- Dennis Miller
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/