summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@suse.com>2012-04-02 15:32:22 +0100
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-04-06 12:13:55 -0400
commit0ee46eca0476faf0e93c1387b1597b861b79711f (patch)
tree43a775087c3170e4a660ae3f8ad8c20b43c5322e /drivers
parente8c9e788f493d3236809e955c9fc12625a461e09 (diff)
downloadlinux-stable-0ee46eca0476faf0e93c1387b1597b861b79711f.tar.gz
linux-stable-0ee46eca0476faf0e93c1387b1597b861b79711f.tar.bz2
linux-stable-0ee46eca0476faf0e93c1387b1597b861b79711f.zip
xen/pciback: fix XEN_PCI_OP_enable_msix result
Prior to 2.6.19 and as of 2.6.31, pci_enable_msix() can return a positive value to indicate the number of vectors (less than the amount requested) that can be set up for a given device. Returning this as an operation value (secondary result) is fine, but (primary) operation results are expected to be negative (error) or zero (success) according to the protocol. With the frontend fixed to match the XenoLinux behavior, the backend can now validly return zero (success) here, passing the upper limit on the number of vectors in op->value. Signed-off-by: Jan Beulich <jbeulich@suse.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/xen/xen-pciback/pciback_ops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c
index 63616d7453e6..97f5d264c31e 100644
--- a/drivers/xen/xen-pciback/pciback_ops.c
+++ b/drivers/xen/xen-pciback/pciback_ops.c
@@ -234,7 +234,7 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
if (dev_data)
dev_data->ack_intr = 0;
- return result;
+ return result > 0 ? 0 : result;
}
static