Displaying 2 results from an estimated 2 matches for "lguest_find_guest_paddr".
2007 Apr 18
1
[PATCH] Lguest32, use guest page tables to find paddr for emulated instructions
...6.21-rc5-mm2.orig/drivers/lguest/core.c
+++ linux-2.6.21-rc5-mm2/drivers/lguest/core.c
@@ -160,11 +160,14 @@ static int emulate_insn(struct lguest *l
{
u8 insn;
unsigned int insnlen = 0, in = 0, shift = 0;
- unsigned long physaddr = guest_pa(lg, lg->regs->eip);
+ unsigned long physaddr = lguest_find_guest_paddr(lg, lg->regs->eip);
- /* This only works for addresses in linear mapping... */
- if (lg->regs->eip < lg->page_offset)
+ /* FIXME: Handle physaddr's that crosses pages (modules are in VM) */
+
+ /* did we actually find the physaddr? */
+ if (physaddr == (unsigned long)-1UL)...
2007 Apr 18
1
[PATCH] Lguest32, use guest page tables to find paddr for emulated instructions
...6.21-rc5-mm2.orig/drivers/lguest/core.c
+++ linux-2.6.21-rc5-mm2/drivers/lguest/core.c
@@ -160,11 +160,14 @@ static int emulate_insn(struct lguest *l
{
u8 insn;
unsigned int insnlen = 0, in = 0, shift = 0;
- unsigned long physaddr = guest_pa(lg, lg->regs->eip);
+ unsigned long physaddr = lguest_find_guest_paddr(lg, lg->regs->eip);
- /* This only works for addresses in linear mapping... */
- if (lg->regs->eip < lg->page_offset)
+ /* FIXME: Handle physaddr's that crosses pages (modules are in VM) */
+
+ /* did we actually find the physaddr? */
+ if (physaddr == (unsigned long)-1UL)...