提交 fe2da64c 编写于 作者: K Konrad Rzeszutek Wilk 提交者: Stefano Stabellini

xen/pt: Log xen_host_pci_get/set errors in MSI code.

We seem to only use these functions when de-activating the
MSI - so just log errors.
Reviewed-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
上级 ea6c50f9
...@@ -75,19 +75,29 @@ static int msi_msix_enable(XenPCIPassthroughState *s, ...@@ -75,19 +75,29 @@ static int msi_msix_enable(XenPCIPassthroughState *s,
bool enable) bool enable)
{ {
uint16_t val = 0; uint16_t val = 0;
int rc;
if (!address) { if (!address) {
return -1; return -1;
} }
xen_host_pci_get_word(&s->real_device, address, &val); rc = xen_host_pci_get_word(&s->real_device, address, &val);
if (rc) {
XEN_PT_ERR(&s->dev, "Failed to read MSI/MSI-X register (0x%x), rc:%d\n",
address, rc);
return rc;
}
if (enable) { if (enable) {
val |= flag; val |= flag;
} else { } else {
val &= ~flag; val &= ~flag;
} }
xen_host_pci_set_word(&s->real_device, address, val); rc = xen_host_pci_set_word(&s->real_device, address, val);
return 0; if (rc) {
XEN_PT_ERR(&s->dev, "Failed to write MSI/MSI-X register (0x%x), rc:%d\n",
address, rc);
}
return rc;
} }
static int msi_msix_setup(XenPCIPassthroughState *s, static int msi_msix_setup(XenPCIPassthroughState *s,
...@@ -276,7 +286,7 @@ void xen_pt_msi_disable(XenPCIPassthroughState *s) ...@@ -276,7 +286,7 @@ void xen_pt_msi_disable(XenPCIPassthroughState *s)
return; return;
} }
xen_pt_msi_set_enable(s, false); (void)xen_pt_msi_set_enable(s, false);
msi_msix_disable(s, msi_addr64(msi), msi->data, msi->pirq, false, msi_msix_disable(s, msi_addr64(msi), msi->data, msi->pirq, false,
msi->initialized); msi->initialized);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册