We encountered a problem with the handling of misaligned operations. When handling a misaligned 'stfX' instruction, the kernel uses the function emulate_store_float( ), which practically copies the source to destination byte by byte. The length of the operation is determined according to the instruction's fsz completer, using the float_fsz table: static const unsigned char float_fsz[4]={ 16, /* extended precision (e) */ 8, /* integer (8) */ 4, /* single precision (s) */ 8 /* double precision (d) */ } The problem is that fsz==e means the operation length is 10 bytes, and not 16 bytes as in the implementation. Attached is a small test case that demonstrates this problem. My questions are: * Is there a rationale behind this implementation, or is it just a mistake ? * If it is a mistake, was it corrected in kernel versions later than 2.4.3 ? <> TIA, Yoav. Yoav Zach Mail: yoav.zach@intel.com