ir_table
ri_entry = &iommu->ir_table->base[idx];
pi_entry = &iommu->ir_table->base[idx];
if (iommu->ir_table && (sts & DMA_GSTS_IRES)) {
irta = virt_to_phys(iommu->ir_table->base);
if (iommu->ir_table) {
irta = virt_to_phys(iommu->ir_table->base);
struct ir_table *ir_table; /* Interrupt remapping info */
struct ir_table *table = iommu->ir_table;
if (!iommu->ir_table)
if (iommu->ir_table) {
if (!bitmap_empty(iommu->ir_table->bitmap,
irte = &iommu->ir_table->base[index];
start = iommu->ir_table->base + index;
bitmap_release_region(iommu->ir_table->bitmap, index,
memcpy(iommu->ir_table->base, old_ir_table, size);
__iommu_flush_cache(iommu, iommu->ir_table->base, size);
if (iommu->ir_table->base[i].present)
bitmap_set(iommu->ir_table->bitmap, i, 1);
addr = virt_to_phys((void *)iommu->ir_table->base);
struct ir_table *ir_table;
if (iommu->ir_table)
ir_table = kzalloc_obj(struct ir_table);
if (!ir_table)
ir_table->base = ir_table_base;
ir_table->bitmap = bitmap;
iommu->ir_table = ir_table;
kfree(ir_table);
iommu->ir_table = NULL;
if (iommu && iommu->ir_table) {
iommu_free_pages(iommu->ir_table->base);
bitmap_free(iommu->ir_table->bitmap);
kfree(iommu->ir_table);
iommu->ir_table = NULL;