[IA64] 4 level page table bug fix in vhpt_miss
authorChen, Kenneth W <kenneth.w.chen@intel.com>
Thu, 17 Nov 2005 09:38:42 +0000 (01:38 -0800)
committerTony Luck <tony.luck@intel.com>
Thu, 17 Nov 2005 17:47:18 +0000 (09:47 -0800)
commitfedb25fae72bc2c3709448a43be067439643da87
treea394188d38b6e1052d7c6abac7b4e17eda903bd5
parent6027994423e12a3c0b22d3dbf9ac87364ca4e0ec
[IA64] 4 level page table bug fix in vhpt_miss

From source code inspection, I think there is a bug with 4 level
page table with vhpt_miss handler.  In the code path of rechecking
page table entry against previously read value after tlb insertion,
*pte value in register r18 was overwritten with value newly read
from pud pointer, render the check of new *pte against previous
*pte completely wrong.  Though the bug is none fatal and the penalty
is to purge the entry and retry.  For functional correctness, it
should be fixed.  The fix is to use a different register so new
*pud don't trash *pte.  (btw, the comments in the cmp statement is
wrong as well, which I will address in the next patch).

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/ivt.S