Attached is the patch with a new hypercall added. Jan/Keir, can you please have
a look on it? I didn't change the dom0 since it has already implemented
save/restore logic with dom0's internal data structure. But latest kernel will
need this.
Because this patch is based in current xen, the pcidevs_lock is still used as
rw_lock, the below small patch will change that to spin_lock if needed.
Thanks
Yunhong Jiang
diff -r a020395f3ea3 xen/arch/x86/msi.c
--- a/xen/arch/x86/msi.c Fri Dec 19 18:01:38 2008 +0800
+++ b/xen/arch/x86/msi.c Fri Dec 19 18:02:31 2008 +0800
@@ -748,7 +748,7 @@ int pci_restore_msi_state(struct pci_dev
struct msi_desc *entry, *tmp;
irq_desc_t *desc;
- ASSERT(rw_is_locked(&pcidevs_lock));
+ ASSERT(spin_is_locked(&pcidevs_lock));
if (!pdev)
return -EINVAL;
diff -r a020395f3ea3 xen/arch/x86/physdev.c
--- a/xen/arch/x86/physdev.c Fri Dec 19 18:01:38 2008 +0800
+++ b/xen/arch/x86/physdev.c Fri Dec 19 18:02:57 2008 +0800
@@ -429,17 +429,17 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
ret = -ENODEV;
- read_lock(&pcidevs_lock);
+ spin_lock(&pcidevs_lock);
pdev = pci_get_pdev(restore_msi.bus, restore_msi.devfn);
if (!pdev)
{
- read_unlock(&pcidevs_lock);
+ spin_unlock(&pcidevs_lock);
break;
}
ret = pci_restore_msi_state(pdev);
- read_unlock(&pcidevs_lock);
+ spin_unlock(&pcidevs_lock);
break;
}
default:
Thanks
Yunhong Jiang
Jan Beulich <mailto:jbeulich@xxxxxxxxxx> wrote:
>>>> "Jiang, Yunhong" <yunhong.jiang@xxxxxxxxx> 18.12.08 03:24 >>>
>> As for guest side, I assume it will be not complex (Jan may have more
>> estimate),
>
> No, it wouldn't be difficult (mostly replacing the map-pirq hypercall with
> whatever the new name would be.
>
>> but we are not sure if the new hypercall is acceptable for Suse.
>
> I don't see a problem with this.
>
> Jan
msi_s3_restore.patch
Description: msi_s3_restore.patch
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|