diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2014-01-09 08:32:36 +0300 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2014-01-09 13:05:45 +0100 |
commit | 9f4c7448f46b881119998702530676b3400752a9 (patch) | |
tree | 5ba0df189db07307763a24c6126972ddab6695fb /drivers/iommu | |
parent | 9bdc531ec63bf894c5e3b7b5a766ce342eb2f52e (diff) |
iommu/vt-d: Fix signedness bug in alloc_irte()
"index" needs to be signed for the error handling to work. I deleted a
little bit of obsolete cruft related to "index" and "start_index" as
well.
Fixes: 360eb3c5687e ('iommu/vt-d: use dedicated bitmap to track remapping entry allocation status')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Diffstat (limited to 'drivers/iommu')
-rw-r--r-- | drivers/iommu/intel_irq_remapping.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c index f307a3fb93c..b30b423c5ac 100644 --- a/drivers/iommu/intel_irq_remapping.c +++ b/drivers/iommu/intel_irq_remapping.c @@ -71,18 +71,13 @@ static int alloc_irte(struct intel_iommu *iommu, int irq, u16 count) struct ir_table *table = iommu->ir_table; struct irq_2_iommu *irq_iommu = irq_2_iommu(irq); struct irq_cfg *cfg = irq_get_chip_data(irq); - u16 index, start_index; unsigned int mask = 0; unsigned long flags; + int index; if (!count || !irq_iommu) return -1; - /* - * start the IRTE search from index 0. - */ - index = start_index = 0; - if (count > 1) { count = __roundup_pow_of_two(count); mask = ilog2(count); |