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

[Xen-devel] [PATCH] Fix casting usage in xen_create_msi_irq.



rc is int, domid is unsigned int. The casting of negatives values
to domid results in wrap where -16 becomes 0xfff0. If we check
for rc (instead of domid) and find a negative value (which you can't
with domid) then we will default to DOMID_SELF - which is exactly
what this line was intending to do earlier but failed to do.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
---
 drivers/xen/events.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index adc8c09..67598bc 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -678,7 +678,7 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc 
*msidesc,
        /* Walk the XenStore keys to see if the device is assigned to any
         * domain. If so, extract the domain id. */
        domid = rc = xenbus_walk( "/local/domain/0", get_domid_for_dev, dev);
-       if (domid <= 0)
+       if (rc <= 0)
                domid = DOMID_SELF;
 
        memset(&map_irq, 0, sizeof(map_irq));
-- 
1.6.2.5


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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