[Linux-ia64] [patch] fix unaligned references inside s/w pipelined loops

From: Luck, Tony <tony.luck_at_intel.com>
Date: 2001-10-17 01:54:08
If an application takes an unaligned trap on a "rotating"
register inside a software pipelined loop[1], then the kernel
will use the wrong register when it fixes the fault.  This
results in corrupted memory or register depending on whether
the unaligned reference was a store or a load respectively.

Attached is a patch to fix this (both for the integer case,
which was the one actually reported to me, and the floating
point case too).  Patch is against 2.4.10.

-Tony Luck

[1] Don't ask me why someone would go through all the effort
of writing a s/w pipelined loop, but not check for unaligned
access, I don't understand it either ... but they did.




Received on Tue Oct 16 08:51:22 2001

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:05 EST