[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Issues with PCI-Passtrough (VT-d) in HVM with Xen 4.6



In reply to - http://lists.xen.org/archives/html/xen-devel/2016-06/msg00622.html

HI, I am working with Jurgen on the issue, as per Jan's request I tried to write explicitly only latency timer to be written - 
bool force_write = false;
if ((dev_data->permissive || xen_pcibk_permissive) &&
              offset == PCI_CACHE_LINE_SIZE && size == 4)
             force_write = true;
...

if ((force_write || !handled) && !err) {...}

But then it exposed another issue, the command register field seems not to be restored also
because I think the bits which are to be restored are not in PCI_COMMAND_GUEST mask.

The only hack which always works for me is force write even if the confpsace fields filter doens't allow it - 

+       int remainder = size;
+       
        if (unlikely(verbose_request))
                printk(KERN_DEBUG
                       DRV_NAME ": %s: write request %d bytes at 0x%x = %x\n",
@@ -252,10 +254,11 @@ int xen_pcibk_config_write(struct pci_dev *dev, int offset, int size, u32 value)
                         * special helpers to work correctly.
                         */
                        handled = 1;
+                       remainder -= field->size
                }
        }
 
-       if (!handled && !err) {
+       if ((remainder || !handled) && !err) {


Thanks.

Andrey Grodzovsky.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.