[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] Re: [XenPPC] current crash
Orran || Maria, please test and ack the following patch. BTW: Thanks to Jonathan Wildstrom for pointing the H_READ_4 error in the rhype code. -- diff -r d87d602408d5 xen/arch/powerpc/papr/xlate.c --- a/xen/arch/powerpc/papr/xlate.c Thu Aug 24 21:07:46 2006 -0400 +++ b/xen/arch/powerpc/papr/xlate.c Fri Aug 25 08:13:12 2006 -0400 @@ -30,12 +30,6 @@ #include <asm/papr.h> #include <asm/hcalls.h> -static void not_yet(struct cpu_user_regs *regs) -{ - printk("not implemented yet: 0x%lx\n", regs->gprs[3]); - for (;;); -} - #ifdef USE_PTE_INSERT static inline void pte_insert(union pte volatile *pte, ulong vsid, ulong rpn, ulong lrpn) @@ -493,8 +487,42 @@ static void h_remove(struct cpu_user_reg pte_tlbie(&lpte, ptex); } +static void h_read(struct cpu_user_regs *regs) +{ + ulong flags = regs->gprs[4]; + ulong ptex = regs->gprs[5]; + struct vcpu *v = get_current(); + struct domain *d = v->domain; + struct domain_htab *htab = &d->arch.htab; + union pte volatile *pte; + + if (flags & H_READ_4) + ptex &= ~0x3UL; + + if (ptex > (1UL << htab->log_num_ptes)) { + regs->gprs[3] = H_Parameter; + printk("%s: bad ptex: 0x%lx\n", __func__, ptex); + return; + } + pte = &htab->map[ptex]; + regs->gprs[4] = pte[0].words.vsid; + regs->gprs[5] = pte[0].words.rpn; + + if (!(flags & H_READ_4)) { + /* dump another 3 PTEs */ + regs->gprs[6] = pte[1].words.vsid; + regs->gprs[7] = pte[1].words.rpn; + regs->gprs[8] = pte[2].words.vsid; + regs->gprs[9] = pte[2].words.rpn; + regs->gprs[10] = pte[3].words.vsid; + regs->gprs[11] = pte[3].words.rpn; + } + + regs->gprs[3] = H_Success; +} + __init_papr_hcall(H_ENTER, h_enter); -__init_papr_hcall(H_READ, not_yet); +__init_papr_hcall(H_READ, h_read); __init_papr_hcall(H_REMOVE, h_remove); __init_papr_hcall(H_CLEAR_MOD, h_clear_mod); __init_papr_hcall(H_CLEAR_REF, h_clear_ref); _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |