Index: 2005-12-16/arch/i386/kernel/cpu/mtrr/main-xen.c =================================================================== --- 2005-12-16.orig/arch/i386/kernel/cpu/mtrr/main-xen.c 2005-12-16 15:38:28.000000000 +0100 +++ 2005-12-16/arch/i386/kernel/cpu/mtrr/main-xen.c 2006-01-04 17:43:09.000000000 +0100 @@ -67,8 +67,10 @@ int mtrr_add_page(unsigned long base, un 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))) + if ((error = HYPERVISOR_dom0_op(&op))) { + BUG_ON(error > 0); return error; + } if (increment) ++usage_table[op.u.add_memtype.reg]; @@ -131,8 +133,12 @@ int mtrr_del_page(int reg, unsigned long 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: