]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
MSI-X: Fix pciback_enable_msix().
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 4 Sep 2008 14:10:11 +0000 (15:10 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 4 Sep 2008 14:10:11 +0000 (15:10 +0100)
Signed-off-by: Yu Zhao <yu.zhao@intel.com>
drivers/xen/pciback/conf_space_capability_msi.c

index 46f5faf83cea8c83acc02111bec5428850147180..1336be2a2af76f29fe43345c2bd40408f8f03a8a 100644 (file)
@@ -37,23 +37,27 @@ int pciback_disable_msi(struct pciback_device *pdev,
 int pciback_enable_msix(struct pciback_device *pdev,
                struct pci_dev *dev, struct xen_pci_op *op)
 {
+       int i;
        int result;
+       struct msix_entry entries[op->value];
 
        if (op->value > SH_INFO_MAX_VEC)
                return -EINVAL;
-       else {
-               struct msix_entry entries[op->value];
-               int i;
 
-               for (i = 0; i < op->value; i++) {
-                       entries[i].entry = op->msix_entries[i].entry;
-                       entries[i].vector = op->msix_entries[i].vector;
-               }
+       for (i = 0; i < op->value; i++) {
+               entries[i].entry = op->msix_entries[i].entry;
+               entries[i].vector = op->msix_entries[i].vector;
+       }
+
+       result = pci_enable_msix(dev, entries, op->value);
 
-               result = pci_enable_msix(dev, entries, op->value);
-               op->value = result;
+       for (i = 0; i < op->value; i++) {
+               op->msix_entries[i].entry = entries[i].entry;
+               op->msix_entries[i].vector = entries[i].vector;
        }
 
+       op->value = result;
+
        return result;
 }