From: Joerg Roedel Date: Fri, 19 Dec 2008 13:42:13 +0000 (+0100) Subject: AMD IOMMU: allocate rlookup_table with __GFP_ZERO X-Git-Tag: v2.6.27.11~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=171075a35117b9eeacc3251816fda5572486c6cf;p=thirdparty%2Fkernel%2Fstable.git AMD IOMMU: allocate rlookup_table with __GFP_ZERO Upstream commit 83fd5cc6481c6b7fa8b45f8a7e0aa7120213430b This is pointer list and if we dereference an uninitialized pointer later this results in a kernel crash at boot. Happens typically after 3-5 hours of rebooting. Signed-off-by: Joerg Roedel Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 1226ec6e080c8..923e6827b1a7d 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c @@ -930,7 +930,8 @@ int __init amd_iommu_init(void) goto free; /* IOMMU rlookup table - find the IOMMU for a specific device */ - amd_iommu_rlookup_table = (void *)__get_free_pages(GFP_KERNEL, + amd_iommu_rlookup_table = (void *)__get_free_pages( + GFP_KERNEL | __GFP_ZERO, get_order(rlookup_table_size)); if (amd_iommu_rlookup_table == NULL) goto free;