On Wed, Feb 19, 2014 at 10:40:19AM -0500, Boris Ostrovsky wrote:
xen_pci_op::value is uint32_tdiff --git a/drivers/xen/xen-pciback/pciback_ops.c
b/drivers/xen/xen-pciback/pciback_ops.c
index 64eb0cd..f5b4c3e 100644
--- a/drivers/xen/xen-pciback/pciback_ops.c
+++ b/drivers/xen/xen-pciback/pciback_ops.c
@@ -213,9 +213,15 @@ int xen_pcibk_enable_msix(struct
xen_pcibk_device *pdev,
entries[i].vector = op->msix_entries[i].vector;
}
- result = pci_enable_msix(dev, entries, op->value);
+ result = pci_enable_msix_range(dev, entries, op->value, op->value);
+ if (result < op->value) {
I think it would be better to have 'if (result != op->value)', in
case op->value is negative (which presumably it should never be).
Better yet, at the top of the routine we check 'if (op->value >
SH_INFO_MAX_VEC)'. If you add '|| op->value < 0' we'd be all set.