# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID aa81f4e44ca5e4eddb1b7a29f9a25ec46fa9d796
# Parent 7eac3edd0589e7077932f1bbc207c6e33d15d97b
Fixes for first step in getting domU back up (by Kevin Tian)
diff -r 7eac3edd0589 -r aa81f4e44ca5
linux-2.6-xen-sparse/arch/ia64/xen/drivers/patches/privcmd.c.patch
--- a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/patches/privcmd.c.patch
Tue Oct 25 03:00:35 2005
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/patches/privcmd.c.patch
Mon Oct 31 23:27:38 2005
@@ -11,39 +11,43 @@
if ((rc = direct_remap_pfn_range(
vma,
msg[j].va&PAGE_MASK,
-@@ -148,6 +151,7 @@
- }
- break;
+@@ -180,6 +183,15 @@
+ for (i = 0; i < m.num; i++, addr += PAGE_SIZE, p++) {
+ if (get_user(mfn, p))
+ return -EFAULT;
++#ifdef __ia64__
++ ret = remap_pfn_range(vma,
++ addr&PAGE_MASK,
++ mfn,
++ 1<<PAGE_SHIFT,
++ vma->vm_page_prot);
++ if (ret < 0)
++ goto batch_err;
++#else
-+#ifndef __ia64__
- case IOCTL_PRIVCMD_MMAPBATCH: {
- mmu_update_t u;
- privcmd_mmapbatch_t m;
-@@ -206,7 +210,9 @@
- }
+ ret = create_lookup_pte_addr(vma->vm_mm, addr, &ptep);
+ if (ret)
+@@ -190,6 +202,7 @@
+
+ if (HYPERVISOR_mmu_update(&u, 1, NULL, m.dom) < 0)
+ put_user(0xF0000000 | mfn, p);
++#endif
+ }
+
+ ret = 0;
+@@ -205,6 +218,7 @@
break;
#endif
-+#endif
+#ifndef __ia64__
case IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN: {
unsigned long m2pv = (unsigned long)machine_to_phys_mapping;
pgd_t *pgd = pgd_offset_k(m2pv);
-@@ -218,6 +224,7 @@
+@@ -216,6 +230,7 @@
-EFAULT: 0;
}
break;
+#endif
- case IOCTL_PRIVCMD_INITDOMAIN_STORE: {
- extern int do_xenbus_probe(void*);
-@@ -241,6 +248,9 @@
-
- /* Initial connect. Setup channel and page. */
- xen_start_info->store_evtchn = data;
-+#ifdef __ia64__
-+#define pfn_to_mfn(x) (x)
-+#endif
- xen_start_info->store_mfn =
- pfn_to_mfn(virt_to_phys((void *)page) >>
- PAGE_SHIFT);
+ default:
+ ret = -EINVAL;
diff -r 7eac3edd0589 -r aa81f4e44ca5 xen/arch/ia64/xen/hypercall.c
--- a/xen/arch/ia64/xen/hypercall.c Tue Oct 25 03:00:35 2005
+++ b/xen/arch/ia64/xen/hypercall.c Mon Oct 31 23:27:38 2005
@@ -187,6 +187,10 @@
regs->r8 = do_console_io(regs->r14, regs->r15, regs->r16);
break;
+ case __HYPERVISOR_xen_version:
+ regs->r8 = do_xen_version(regs->r14, regs->r15);
+ break;
+
default:
printf("unknown hypercall %x\n", regs->r2);
regs->r8 = (unsigned long)-1;
diff -r 7eac3edd0589 -r aa81f4e44ca5 xen/arch/ia64/xen/xenmisc.c
--- a/xen/arch/ia64/xen/xenmisc.c Tue Oct 25 03:00:35 2005
+++ b/xen/arch/ia64/xen/xenmisc.c Mon Oct 31 23:27:38 2005
@@ -290,8 +290,8 @@
//prev->domain->domain_id,(long)prev&0xffffff,next->domain->domain_id,(long)next&0xffffff);
//if (prev->domain->domain_id == 1 && next->domain->domain_id == 0) cs10foo();
//if (prev->domain->domain_id == 0 && next->domain->domain_id == 1) cs01foo();
-printk("@@sw%d/%x %d->%d\n",smp_processor_id(), hard_smp_processor_id (),
- prev->domain->domain_id,next->domain->domain_id);
+//printk("@@sw%d/%x %d->%d\n",smp_processor_id(), hard_smp_processor_id (),
+// prev->domain->domain_id,next->domain->domain_id);
if(VMX_DOMAIN(prev)){
vtm_domain_out(prev);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|