Skip to content

Commit

Permalink
AMD IOMMU: calculate IVHD size with a function
Browse files Browse the repository at this point in the history
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: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Joerg Roedel authored and Ingo Molnar committed Sep 19, 2008
1 parent 199d0d5 commit b514e55
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions arch/x86/kernel/amd_iommu_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
}
}

Expand Down

0 comments on commit b514e55

Please sign in to comment.