• Al Viro's avatar
    forcedeth endianness bugs · 5bb7ea26
    Al Viro authored
    * misannotation: struct register_test members are actually host-endian
    * bug: cpu_to_le64(n) >> 32 instead of cpu_to_le32(n >> 32) in setting
    ->bufhigh and similar for ->buflow (take low bits, _then_ convert to
    little-endian, not the other way round).
    * bug: setup_hw_rings() should not convert to little-endian at all (we
    feed the result to writel(), not store in shared data structure), let
    alone try to play with shifting and masking little-endian values.  Introduced
    when setup_hw_rings() went in, screwed both 64bit case and the old code for
    32bit rings it had replaced.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    5bb7ea26
forcedeth.c 171 KB