Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jul 2011 23:01:08 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/boot/common ufsread.c
Message-ID:  <201107252301.p6PN1RHV037082@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
marius      2011-07-25 23:01:08 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_8)
    sys/boot/common      ufsread.c 
  Log:
  SVN rev 224411 on 2011-07-25 23:01:08Z by marius
  
  MFC: r223938
  
  Since r219452 the alignment of __dmadat has changed, revealing that fsread()
  bogusly casts its contents around causing alignment faults on sparc64 and
  most likely also on at least powerpc. Fix this by copying the contents
  bytewise instead as partly already done here. Solving this the right way
  costs some space, i.e. 148 bytes with GCC and 16 bytes with clang on x86
  there are still some bytes left there though, and an acceptable hack which
  tricks the compiler into only using a 2-byte alignment instead of the native
  one when accessing the contents turned out to even take up more space that.
  
  Revision  Changes    Path
  1.19.2.4  +35 -31    src/sys/boot/common/ufsread.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107252301.p6PN1RHV037082>