aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-04 18:47:11 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-04 18:47:11 +0100
commitc546f7e7bbd31a38e7ba41095e01b9bcab197efe (patch)
tree0b45f7f5484edceb7b9f7a52d8497b3e3b4ba717
parent65abb26969948bb60897c814d3862594d11e76dd (diff)
downloadxen-c546f7e7bbd31a38e7ba41095e01b9bcab197efe.tar.gz
xen-c546f7e7bbd31a38e7ba41095e01b9bcab197efe.tar.bz2
xen-c546f7e7bbd31a38e7ba41095e01b9bcab197efe.zip
Fixes to mtrr interface code in linux guest.
Signed-off-by: Jan Beulich <JBeulich@novell.com>
-rw-r--r--linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c b/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
index 41808f1711..b0d0914a14 100644
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
@@ -67,8 +67,11 @@ int mtrr_add_page(unsigned long base, unsigned long size,
op.u.add_memtype.pfn = base;
op.u.add_memtype.nr_pfns = size;
op.u.add_memtype.type = type;
- if ((error = HYPERVISOR_dom0_op(&op)))
+ error = HYPERVISOR_dom0_op(&op);
+ if (error) {
+ BUG_ON(error > 0);
return error;
+ }
if (increment)
++usage_table[op.u.add_memtype.reg];
@@ -121,8 +124,12 @@ int mtrr_del_page(int reg, unsigned long base, unsigned long size)
if (--usage_table[reg] < 1) {
op.cmd = DOM0_DEL_MEMTYPE;
op.u.del_memtype.handle = 0;
- op.u.add_memtype.reg = reg;
- (void)HYPERVISOR_dom0_op(&op);
+ op.u.del_memtype.reg = reg;
+ error = HYPERVISOR_dom0_op(&op);
+ if (error) {
+ BUG_ON(error > 0);
+ goto out;
+ }
}
error = reg;
out: