search for: do_hcall

Displaying 20 results from an estimated 26 matches for "do_hcall".

2009 Mar 26
1
[PATCH 3/5] lguest: avoid accidental recycling of pgdir pages
...1 + drivers/lguest/page_tables.c | 16 ++++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 54d66f0..a160894 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -92,6 +92,9 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) case LHCALL_NOTIFY: cpu->pending_notify = args->arg1; break; + case LHCALL_INVALIDATE_PGTABLE: + invalidate_pagetable(cpu, args->arg1); + break; default: /* It should be an architecture-specific hypercall. */ if (lguest_arch_do...
2009 Mar 26
1
[PATCH 3/5] lguest: avoid accidental recycling of pgdir pages
...1 + drivers/lguest/page_tables.c | 16 ++++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 54d66f0..a160894 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -92,6 +92,9 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) case LHCALL_NOTIFY: cpu->pending_notify = args->arg1; break; + case LHCALL_INVALIDATE_PGTABLE: + invalidate_pagetable(cpu, args->arg1); + break; default: /* It should be an architecture-specific hypercall. */ if (lguest_arch_do...
2007 May 09
2
[PATCH 0/2 v05] lguest: TSC & hrtimers
The following patches are the latest update of the TSC and hrtimer patches I posted on 29/03. Rusty's original TSC patch has been resynced to the latest lguest repo, as has the hrtimer patch, which also incorporates feedback from Jeremy & Rusty: - Change clock event hrtimer to absolute time. 'now' is captured in the host during the hypercall. - Propagate -ETIME back to the
2007 May 09
2
[PATCH 0/2 v05] lguest: TSC & hrtimers
The following patches are the latest update of the TSC and hrtimer patches I posted on 29/03. Rusty's original TSC patch has been resynced to the latest lguest repo, as has the hrtimer patch, which also incorporates feedback from Jeremy & Rusty: - Change clock event hrtimer to absolute time. 'now' is captured in the host during the hypercall. - Propagate -ETIME back to the
2007 May 14
5
[PATCH 1/6] lguest: host code tidyups
...+ on_each_cpu(adjust_pge, (void *)0, 0, 1); clear_bit(X86_FEATURE_PGE, boot_cpu_data.x86_capability); } unlock_cpu_hotplug(); =================================================================== --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -83,7 +83,7 @@ static void do_hcall(struct lguest *lg, guest_set_pmd(lg, regs->edx, regs->ebx); break; case LHCALL_LOAD_TLS: - guest_load_tls(lg, (struct desc_struct __user*)regs->edx); + guest_load_tls(lg, regs->edx); break; case LHCALL_TS: lg->ts = regs->edx; @@ -92,7 +92,7 @@ static void do_hca...
2007 May 14
5
[PATCH 1/6] lguest: host code tidyups
...+ on_each_cpu(adjust_pge, (void *)0, 0, 1); clear_bit(X86_FEATURE_PGE, boot_cpu_data.x86_capability); } unlock_cpu_hotplug(); =================================================================== --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -83,7 +83,7 @@ static void do_hcall(struct lguest *lg, guest_set_pmd(lg, regs->edx, regs->ebx); break; case LHCALL_LOAD_TLS: - guest_load_tls(lg, (struct desc_struct __user*)regs->edx); + guest_load_tls(lg, regs->edx); break; case LHCALL_TS: lg->ts = regs->edx; @@ -92,7 +92,7 @@ static void do_hca...
2007 Jul 22
0
[PATCH] Fix lguest clock when jiffies not available
...timestamps can go backwards. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff -r 144835834edd drivers/lguest/hypercalls.c --- a/drivers/lguest/hypercalls.c Sat Jul 21 11:12:01 2007 +1000 +++ b/drivers/lguest/hypercalls.c Sun Jul 22 20:49:12 2007 +1000 @@ -44,12 +44,6 @@ static void do_hcall(struct lguest *lg, else guest_pagetable_flush_user(lg); break; - case LHCALL_GET_WALLCLOCK: { - struct timespec ts; - ktime_get_real_ts(&ts); - regs->eax = ts.tv_sec; - break; - } case LHCALL_BIND_DMA: regs->eax = bind_dma(lg, regs->edx, regs->ebx, regs...
2007 Jul 22
0
[PATCH] Fix lguest clock when jiffies not available
...timestamps can go backwards. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff -r 144835834edd drivers/lguest/hypercalls.c --- a/drivers/lguest/hypercalls.c Sat Jul 21 11:12:01 2007 +1000 +++ b/drivers/lguest/hypercalls.c Sun Jul 22 20:49:12 2007 +1000 @@ -44,12 +44,6 @@ static void do_hcall(struct lguest *lg, else guest_pagetable_flush_user(lg); break; - case LHCALL_GET_WALLCLOCK: { - struct timespec ts; - ktime_get_real_ts(&ts); - regs->eax = ts.tv_sec; - break; - } case LHCALL_BIND_DMA: regs->eax = bind_dma(lg, regs->edx, regs->ebx, regs...
2007 May 04
1
[PATCH 1/3] Documentation and example updates
1) Example code: old libc headers don't have SIOCBRADDIF, and old zlibs don't have gzdirect() -- it's a sanity check anyway. 2) Some people don't build in their source directories, so .config isn't there (thanks to Tony Breeds <tony@bakeyournoodle.com>). 3) Point out that guest and host kernel are usually the same. 4) Set the "no checksum" option on the
2007 May 04
1
[PATCH 1/3] Documentation and example updates
1) Example code: old libc headers don't have SIOCBRADDIF, and old zlibs don't have gzdirect() -- it's a sanity check anyway. 2) Some people don't build in their source directories, so .config isn't there (thanks to Tony Breeds <tony@bakeyournoodle.com>). 3) Point out that guest and host kernel are usually the same. 4) Set the "no checksum" option on the
2007 May 10
4
[PATCH 0/5] lguest feedback tidyups
Hi all, Gratefully-received recent feedback from CC'd was applied to excellent effect (and the advice from Matt Mackall about my personal appearance is best unrequited). The patch is split in 5 parts to correspond with the 9 parts Andrew sent out before, but here's the summary: 1) Sparse (thanks Christoph Hellwig): - lguest_const can be static now - lguest.c should include
2007 May 10
4
[PATCH 0/5] lguest feedback tidyups
Hi all, Gratefully-received recent feedback from CC'd was applied to excellent effect (and the advice from Matt Mackall about my personal appearance is best unrequited). The patch is split in 5 parts to correspond with the 9 parts Andrew sent out before, but here's the summary: 1) Sparse (thanks Christoph Hellwig): - lguest_const can be static now - lguest.c should include
2007 May 09
1
[patch 3/9] lguest: the host code
...Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ +#include <linux/uaccess.h> +#include <linux/syscalls.h> +#include <linux/mm.h> +#include <asm/page.h> +#include <asm/pgtable.h> +#include <irq_vectors.h> +#include "lg.h" + +static void do_hcall(struct lguest *lg, struct lguest_regs *regs) +{ + switch (regs->eax) { + case LHCALL_FLUSH_ASYNC: + break; + case LHCALL_LGUEST_INIT: + kill_guest(lg, "already have lguest_data"); + break; + case LHCALL_CRASH: { + char msg[128]; + lgread(lg, msg, regs->edx, sizeof(msg)); + msg...
2007 May 09
1
[patch 3/9] lguest: the host code
...Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ +#include <linux/uaccess.h> +#include <linux/syscalls.h> +#include <linux/mm.h> +#include <asm/page.h> +#include <asm/pgtable.h> +#include <irq_vectors.h> +#include "lg.h" + +static void do_hcall(struct lguest *lg, struct lguest_regs *regs) +{ + switch (regs->eax) { + case LHCALL_FLUSH_ASYNC: + break; + case LHCALL_LGUEST_INIT: + kill_guest(lg, "already have lguest_data"); + break; + case LHCALL_CRASH: { + char msg[128]; + lgread(lg, msg, regs->edx, sizeof(msg)); + msg...
2009 Jun 05
1
[PATCH] lguest: PAE support
...p; FUTEX select HVC_DRIVER ---help--- This is a very simple module which allows you to run diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 1cc3377..5415da1 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -73,11 +73,21 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) guest_set_stack(cpu, args->arg1, args->arg2, args->arg3); break; case LHCALL_SET_PTE: +#ifdef CONFIG_X86_PAE + guest_set_pte(cpu, args->arg1, args->arg2, + __pte(args->arg3 | (u64)args->arg4 << 32)); +#else guest...
2009 Jun 05
1
[PATCH] lguest: PAE support
...p; FUTEX select HVC_DRIVER ---help--- This is a very simple module which allows you to run diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 1cc3377..5415da1 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -73,11 +73,21 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) guest_set_stack(cpu, args->arg1, args->arg2, args->arg3); break; case LHCALL_SET_PTE: +#ifdef CONFIG_X86_PAE + guest_set_pte(cpu, args->arg1, args->arg2, + __pte(args->arg3 | (u64)args->arg4 << 32)); +#else guest...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...pages); + vcpu->tss.rsp2 = rsp; + /* FIXME */ +// lg->stack_pages = pages; +// pin_stack_pages(lg); +} + +static DEFINE_MUTEX(hcall_print_lock); +#define HCALL_PRINT_SIZ 1024 +static char hcall_print_buf[HCALL_PRINT_SIZ]; + +/* Return true if DMA to host userspace now pending. */ +static int do_hcall(struct lguest_vcpu *vcpu) +{ + struct lguest_regs *regs = &vcpu->regs; + struct lguest_guest_info *linfo = vcpu->guest; + unsigned long val; + unsigned long ret; + + switch (regs->rax) { + case LHCALL_PRINT: + mutex_lock(&hcall_print_lock); + ret = strncpy_from_user(hcall_print_b...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...pages); + vcpu->tss.rsp2 = rsp; + /* FIXME */ +// lg->stack_pages = pages; +// pin_stack_pages(lg); +} + +static DEFINE_MUTEX(hcall_print_lock); +#define HCALL_PRINT_SIZ 1024 +static char hcall_print_buf[HCALL_PRINT_SIZ]; + +/* Return true if DMA to host userspace now pending. */ +static int do_hcall(struct lguest_vcpu *vcpu) +{ + struct lguest_regs *regs = &vcpu->regs; + struct lguest_guest_info *linfo = vcpu->guest; + unsigned long val; + unsigned long ret; + + switch (regs->rax) { + case LHCALL_PRINT: + mutex_lock(&hcall_print_lock); + ret = strncpy_from_user(hcall_print_b...
2009 Apr 16
1
NULL pointer dereference at __switch_to() ( __unlazy_fpu ) with lguest PAE patch
...mp; FUTEX select HVC_DRIVER ---help--- This is a very simple module which allows you to run diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 54d66f0..c5d6678 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -78,6 +78,11 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) case LHCALL_SET_PMD: guest_set_pmd(cpu->lg, args->arg1, args->arg2); break; +#ifdef CONFIG_X86_PAE + case LHCALL_SET_PUD: + guest_set_pud(cpu->lg, args->arg1, args->arg2); + break; +#endif case LHCALL_SET_CLOCKEVENT: gues...
2009 Apr 16
1
NULL pointer dereference at __switch_to() ( __unlazy_fpu ) with lguest PAE patch
...mp; FUTEX select HVC_DRIVER ---help--- This is a very simple module which allows you to run diff --git a/drivers/lguest/hypercalls.c b/drivers/lguest/hypercalls.c index 54d66f0..c5d6678 100644 --- a/drivers/lguest/hypercalls.c +++ b/drivers/lguest/hypercalls.c @@ -78,6 +78,11 @@ static void do_hcall(struct lg_cpu *cpu, struct hcall_args *args) case LHCALL_SET_PMD: guest_set_pmd(cpu->lg, args->arg1, args->arg2); break; +#ifdef CONFIG_X86_PAE + case LHCALL_SET_PUD: + guest_set_pud(cpu->lg, args->arg1, args->arg2); + break; +#endif case LHCALL_SET_CLOCKEVENT: gues...