|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Improve priv_emulate() isr.code ha
# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1182195691 21600
# Node ID 0944634d463906941e985e936ebea4dcf87445f0
# Parent bdcb9cf6073d180fa64f7213b59540194e4031f8
[IA64] Improve priv_emulate() isr.code handling for IA64_GENEX_VECTOR
Better handling of isr.code if priv_emulate() fails with IA64_GENEX_VECTOR.
Signed-off-by: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
---
xen/arch/ia64/xen/faults.c | 8 ++++++++
1 files changed, 8 insertions(+)
diff -r bdcb9cf6073d -r 0944634d4639 xen/arch/ia64/xen/faults.c
--- a/xen/arch/ia64/xen/faults.c Mon Jun 18 13:36:36 2007 -0600
+++ b/xen/arch/ia64/xen/faults.c Mon Jun 18 13:41:31 2007 -0600
@@ -544,6 +544,14 @@ ia64_handle_privop(unsigned long ifa, st
if (vector != IA64_NO_FAULT && vector != IA64_RFI_IN_PROGRESS) {
// Note: if a path results in a vector to reflect that requires
// iha/itir (e.g. vcpu_force_data_miss), they must be set there
+ /*
+ * IA64_GENEX_VECTOR may contain in the lowest byte an ISR.code
+ * see IA64_ILLOP_FAULT, ...
+ */
+ if ((vector & ~0xffUL) == IA64_GENEX_VECTOR) {
+ isr = vector & 0xffUL;
+ vector = IA64_GENEX_VECTOR;
+ }
reflect_interruption(isr, regs, vector);
}
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [IA64] Improve priv_emulate() isr.code handling for IA64_GENEX_VECTOR,
Xen patchbot-unstable <=
|
|
|
|
|