Make Xen VT-d PCI attach/detach work
The Xen code for making HVM VT-d PCI passthrough attach and detach wasn't working properly: 1) In xenDaemonAttachDevice(), we were always trying to reconfigure a PCI passthrough device, even the first time we added it. This was because the code in virDomainXMLDevID() was not checking xenstore for the existence of the device, and always returning 0 (meaning that the device already existed). 2) In xenDaemonDetachDevice(), we were trying to use "device_destroy" to detach a PCI device. While you would think that is the right method to call, it's actually wrong for PCI devices. In particular, in upstream Xen (and soon in RHEL-5 Xen), device_configure is actually used to destroy a PCI device. To fix the attach problem I add a lookup into xenstore to see if the device we are trying to attach already exists. To fix the detach problem I change it so that for PCI detach (only), we use device_configure with the appropriate sxpr to do the detachment. * src/xen/xend_internal.c: don't use device_destroy for PCI devices and fix the other issues. * src/xen/xs_internal.c src/xen/xs_internal.h: add xenStoreDomainGetPCIID()
Showing
想要评论请 注册 或 登录