26 May, 2010

1 commit

  • This reverts commit b3b77c8caef1750ebeea1054e39e358550ea9f55, which was
    also totally broken (see commit 0d2daf5cc858 that reverted the crc32
    version of it). As reported by Stephen Rothwell, it causes problems on
    big-endian machines:

    > In file included from fs/jfs/jfs_types.h:33,
    > from fs/jfs/jfs_incore.h:26,
    > from fs/jfs/file.c:22:
    > fs/jfs/endian24.h:36:101: warning: "__LITTLE_ENDIAN" is not defined

    The kernel has never had that crazy "__BYTE_ORDER == __LITTLE_ENDIAN"
    model. It's not how we do things, and it isn't how we _should_ do
    things. So don't go there.

    Requested-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

25 May, 2010

1 commit

  • Linux does not define __BYTE_ORDER in its endian header files which makes
    some header files bend backwards to get at the current endian. Lets
    #define __BYTE_ORDER in big_endian.h/litte_endian.h to make it easier for
    header files that are used in user space too.

    In userspace the convention is that

    1. _both_ __LITTLE_ENDIAN and __BIG_ENDIAN are defined,
    2. you have to test for e.g. __BYTE_ORDER == __BIG_ENDIAN.

    Signed-off-by: Joakim Tjernlund
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joakim Tjernlund
     

07 Jan, 2009

1 commit

  • The first step to make swab.h a regular header that will
    include an asm/swab.h with arch overrides.

    Avoid the gratuitous differences introduced in the new
    linux/swab.h by naming the ___constant_swabXX bits and
    __fswabXX bits exactly as found in the old implementation
    in byteorder/swab[b].h

    Use this new swab.h in byteorder/[big|little]_endian.h and
    remove the two old swab headers.

    Although the inclusion of asm/byteorder.h looks strange in
    linux/swab.h, this will allow each arch to move the actual
    arch overrides for the swab bits in an asm file and then
    the includes can be cleaned up without requiring a flag day
    for all arches at once.

    Keep providing __fswabXX in case some userspace was using them
    directly, but the revised __swabXX should be used instead in
    any new code and will always do constant folding not dependent
    on the optimization level, which means the __constant versions
    can be phased out in-kernel.

    Arches that use the old-style arch macros will lose their
    optimized versions until they move to the new style, but at
    least they will still compile. Many arches have already moved
    and the patches to move the remaining arches are trivial.

    Signed-off-by: Harvey Harrison
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

20 Oct, 2008

1 commit

  • This is needed during the transition to the new byteorder headers as the
    swabb.h functionality will be provided from asm/byteorder.h in the new
    version. To avoid breakage on arches still using the old implementation,
    provide swabb.h from asm/byteorder.h as well.

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

26 Jul, 2008

1 commit

  • Changeset 7fa897b91a3ea0f16c2873b869d7a0eef05acff4 ("ide: trivial sparse
    annotations") created an IDE bootup regression on big-endian systems.

    In drivers/ide/ide-iops.c, function ide_fixstring() we now have the
    loop:

    for (p = end ; p != s;)
    be16_to_cpus((u16 *)(p -= 2));

    which will never terminate on big-endian because in such
    a configuration be16_to_cpus() evaluates to "do { } while (0)"

    Therefore, always evaluate the arguments to nop endian transformation
    operations.

    Signed-off-by: David S. Miller
    Signed-off-by: Linus Torvalds

    David Miller
     

30 Apr, 2008

1 commit

  • Fix up the contents of so that it doesn't export a
    content-free generic.h to user space. This involves:

    * Removing the __KERNEL__ tests from generic.h and dropping it from
    Kbuild.
    * Wrapping the inclusions of generic.h in both big_endian.h and
    little_endian.h in __KERNEL__ tests.
    * Shifting big_endian.h and little_endian.h from header-y to
    unifdef-y in Kbuild.

    Signed-off-by: Robert P. J. Day
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds