Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b514e555 authored by Joerg Roedel's avatar Joerg Roedel Committed by Ingo Molnar
Browse files

AMD IOMMU: calculate IVHD size with a function



The current calculation of the IVHD entry size is hard to read. So move
this code to a seperate function to make it more clear what this
calculation does.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 199d0d50
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -296,6 +296,14 @@ static void __init iommu_unmap_mmio_space(struct amd_iommu *iommu)
 *
 ****************************************************************************/

/*
 * This function calculates the length of a given IVHD entry
 */
static inline int ivhd_entry_length(u8 *ivhd)
{
	return 0x04 << (*ivhd >> 6);
}

/*
 * This function reads the last device id the IOMMU has to handle from the PCI
 * capability header for this IOMMU
@@ -340,7 +348,7 @@ static int __init find_last_devid_from_ivhd(struct ivhd_header *h)
		default:
			break;
		}
		p += 0x04 << (*p >> 6);
		p += ivhd_entry_length(p);
	}

	WARN_ON(p != end);
@@ -641,7 +649,7 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
			break;
		}

		p += 0x04 << (e->type >> 6);
		p += ivhd_entry_length(p);
	}
}