diff options
Diffstat (limited to 'arch/x86/kernel/pci-gart_64.c')
-rw-r--r-- | arch/x86/kernel/pci-gart_64.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index aecea068f583..d077116fec1b 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c | |||
@@ -674,13 +674,13 @@ static __init int init_k8_gatt(struct agp_kern_info *info) | |||
674 | info->aper_size = aper_size >> 20; | 674 | info->aper_size = aper_size >> 20; |
675 | 675 | ||
676 | gatt_size = (aper_size >> PAGE_SHIFT) * sizeof(u32); | 676 | gatt_size = (aper_size >> PAGE_SHIFT) * sizeof(u32); |
677 | gatt = (void *)__get_free_pages(GFP_KERNEL, get_order(gatt_size)); | 677 | gatt = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, |
678 | get_order(gatt_size)); | ||
678 | if (!gatt) | 679 | if (!gatt) |
679 | panic("Cannot allocate GATT table"); | 680 | panic("Cannot allocate GATT table"); |
680 | if (set_memory_uc((unsigned long)gatt, gatt_size >> PAGE_SHIFT)) | 681 | if (set_memory_uc((unsigned long)gatt, gatt_size >> PAGE_SHIFT)) |
681 | panic("Could not set GART PTEs to uncacheable pages"); | 682 | panic("Could not set GART PTEs to uncacheable pages"); |
682 | 683 | ||
683 | memset(gatt, 0, gatt_size); | ||
684 | agp_gatt_table = gatt; | 684 | agp_gatt_table = gatt; |
685 | 685 | ||
686 | enable_gart_translations(); | 686 | enable_gart_translations(); |
@@ -788,19 +788,16 @@ void __init gart_iommu_init(void) | |||
788 | iommu_size = check_iommu_size(info.aper_base, aper_size); | 788 | iommu_size = check_iommu_size(info.aper_base, aper_size); |
789 | iommu_pages = iommu_size >> PAGE_SHIFT; | 789 | iommu_pages = iommu_size >> PAGE_SHIFT; |
790 | 790 | ||
791 | iommu_gart_bitmap = (void *) __get_free_pages(GFP_KERNEL, | 791 | iommu_gart_bitmap = (void *) __get_free_pages(GFP_KERNEL | __GFP_ZERO, |
792 | get_order(iommu_pages/8)); | 792 | get_order(iommu_pages/8)); |
793 | if (!iommu_gart_bitmap) | 793 | if (!iommu_gart_bitmap) |
794 | panic("Cannot allocate iommu bitmap\n"); | 794 | panic("Cannot allocate iommu bitmap\n"); |
795 | memset(iommu_gart_bitmap, 0, iommu_pages/8); | ||
796 | 795 | ||
797 | #ifdef CONFIG_IOMMU_LEAK | 796 | #ifdef CONFIG_IOMMU_LEAK |
798 | if (leak_trace) { | 797 | if (leak_trace) { |
799 | iommu_leak_tab = (void *)__get_free_pages(GFP_KERNEL, | 798 | iommu_leak_tab = (void *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, |
800 | get_order(iommu_pages*sizeof(void *))); | 799 | get_order(iommu_pages*sizeof(void *))); |
801 | if (iommu_leak_tab) | 800 | if (!iommu_leak_tab) |
802 | memset(iommu_leak_tab, 0, iommu_pages * 8); | ||
803 | else | ||
804 | printk(KERN_DEBUG | 801 | printk(KERN_DEBUG |
805 | "PCI-DMA: Cannot allocate leak trace area\n"); | 802 | "PCI-DMA: Cannot allocate leak trace area\n"); |
806 | } | 803 | } |