AMD IOMMU: allocate rlookup_table with __GFP_ZERO
authorJoerg Roedel <joerg.roedel@amd.com>
Fri, 19 Dec 2008 13:42:13 +0000 (14:42 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Jan 2009 17:44:08 +0000 (09:44 -0800)
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 <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/amd_iommu_init.c

index 1226ec6..923e682 100644 (file)
@@ -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;