Hi, Dietmar
Hi Akio,
I think your suggestion is almost right.
But should the folloing IA64_ISR_CODE_LFETCH be checked?
(because Privilege Register Fault may be occurred on guest.)
ia64_fault()
393 if ((isr & IA64_ISR_NA) &&
394 ((isr & IA64_ISR_CODE_MASK) == IA64_ISR_CODE_LFETCH)) {
395 /*
396 * This fault was due to lfetch.fault, set "ed" bit in
the 397 * psr to cancel the lfetch.
398 */
399 ia64_psr(regs)->ed = 1;
400 printk("ia64_fault: handled lfetch.fault\n");
401 return;
402 }
If the FAULT_OR_REFLECT(24) is called in the trap handler, than the domU has
to handle the lfetch.fault. and this is OK, I think.
So my suggestion should be OK?
I think more, and you are right.
I thought "ia64_psr(regs)->ed = 1" on domU generate Privilege Register Fault
and General Exception is happended again.
But because xen check code=0x20, your suggestion is OK.
Best Regards,