• Akinobu Mita's avatar
    mtd: mtd_nandecctest: support injecting bit error for ecc code · c092b439
    Akinobu Mita authored
    Currently inject_single_bit_error() is used to inject single bit error
    into randomly selected bit position of the 256 or 512 bytes data block.
    
    Later change will add tests which inject bit errors into the ecc code.
    Unfortunately, inject_single_bit_error() doesn't work for the ecc code
    which is not a multiple of sizeof(unsigned long).
    
    Because bit fliping at random position is done by __change_bit().
    For example, flipping bit position 0 by __change_bit(0, addr) modifies
    3rd byte (32bit) or 7th byte (64bit) on big-endian systems.
    
    Using little-endian version of bitops can fix this issue.  But
    little-endian version of __change_bit is not yet available.
    So this defines __change_bit_le() locally in a similar fashion to
    asm-generic/bitops/le.h and use it.
    Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    c092b439
mtd_nandecctest.c 2.95 KB