Messages in this thread Patch in this message | | | Date | Thu, 16 Oct 2008 16:27:36 +0200 | From | Andreas Herrmann <> | Subject | [PATCH] x86: amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors |
| |
We are on 64-bit so better use u64 instead of u32 to deal with addresses:
static void __init iommu_set_device_table(struct amd_iommu *iommu) { u64 entry; ... entry = virt_to_phys(amd_iommu_dev_table); ...
(I am wondering why gcc 4.2.x did not warn about the assignment between u32 and unsigned long.)
Cc: iommu@lists.linux-foundation.org Cc: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
--- arch/x86/kernel/amd_iommu_init.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Patch is against today's tip/x86/amd-iommu Joerg is on vacation. That is why I post this patch directly to you.
Regards,
Andreas
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index a69cc0f..bccd0ef 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c @@ -210,7 +210,7 @@ static void __init iommu_set_exclusion_range(struct amd_iommu *iommu) /* Programs the physical address of the device table into the IOMMU hardware */ static void __init iommu_set_device_table(struct amd_iommu *iommu) { - u32 entry; + u64 entry; BUG_ON(iommu->mmio_base == NULL); -- 1.6.0.2
| |