• Robin Holt's avatar
    [IA64] bte_unaligned_copy() transfers one extra cache line. · cbf093e8
    Robin Holt authored
    When called to do a transfer that has a start offset within the cache
    line which is uneven between source and destination and a length which
    terminates the source of the copy exactly on a cache line, one extra
    line gets copied into a temporary buffer.  This is normally not an issue
    since the buffer is a kernel buffer and only the requested information
    gets copied into the user buffer.
    
    The problem arises when the source ends at the very last physical page
    of memory.  That last cache line does not exist and results in the SHUB
    chip raising an MCA.
    Signed-off-by: default avatarRobin Holt <holt@sgi.com>
    Signed-off-by: default avatarDean Nelson <dcn@sgi.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    cbf093e8
bte.c 12.6 KB