]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
x86/dma: Remove dma_alloc_coherent_gfp_flags()
authorChristoph Hellwig <hch@lst.de>
Mon, 19 Mar 2018 10:38:21 +0000 (11:38 +0100)
committerIngo Molnar <mingo@kernel.org>
Tue, 20 Mar 2018 09:01:58 +0000 (10:01 +0100)
All dma_ops implementations used on x86 now take care of setting their own
required GFP_ masks for the allocation.  And given that the common code
now clears harmful flags itself that means we can stop the flags in all
the IOMMU implementations as well.

Tested-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Muli Ben-Yehuda <mulix@mulix.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: iommu@lists.linux-foundation.org
Link: http://lkml.kernel.org/r/20180319103826.12853-10-hch@lst.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/dma-mapping.h
arch/x86/kernel/pci-calgary_64.c
arch/x86/kernel/pci-dma.c
arch/x86/mm/mem_encrypt.c

index df9816b385eb0bc1d6503af0119d2b0314df202d..89ce4bfd241fb8aa97277946660148a0f060bed5 100644 (file)
@@ -36,15 +36,4 @@ int arch_dma_supported(struct device *dev, u64 mask);
 bool arch_dma_alloc_attrs(struct device **dev, gfp_t *gfp);
 #define arch_dma_alloc_attrs arch_dma_alloc_attrs
 
-static inline gfp_t dma_alloc_coherent_gfp_flags(struct device *dev, gfp_t gfp)
-{
-       if (dev->coherent_dma_mask <= DMA_BIT_MASK(24))
-               gfp |= GFP_DMA;
-#ifdef CONFIG_X86_64
-       if (dev->coherent_dma_mask <= DMA_BIT_MASK(32) && !(gfp & GFP_DMA))
-               gfp |= GFP_DMA32;
-#endif
-       return gfp;
-}
-
 #endif
index 5647853053bdc39929376fc19f8113965e71d842..bbfc8b1e9104c82123446385cd2e2accb28b4ae3 100644 (file)
@@ -446,8 +446,6 @@ static void* calgary_alloc_coherent(struct device *dev, size_t size,
        npages = size >> PAGE_SHIFT;
        order = get_order(size);
 
-       flag &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);
-
        /* alloc enough pages (and possibly more) */
        ret = (void *)__get_free_pages(flag, order);
        if (!ret)
index db0b88ea8d1ba4c66e97288556f2918c70983b73..14437116ffea2d03a545ba7610a55cef92e0ef38 100644 (file)
@@ -82,8 +82,6 @@ bool arch_dma_alloc_attrs(struct device **dev, gfp_t *gfp)
        if (!*dev)
                *dev = &x86_dma_fallback_dev;
 
-       *gfp = dma_alloc_coherent_gfp_flags(*dev, *gfp);
-
        if (!is_device_dma_capable(*dev))
                return false;
        return true;
index f6cd84beb61044bcc84cb9164baa6c7004e211d8..1217a4fab91586dababf7f32cc918134ccf4d107 100644 (file)
@@ -203,13 +203,6 @@ static void *sev_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
        void *vaddr = NULL;
 
        order = get_order(size);
-
-       /*
-        * Memory will be memset to zero after marking decrypted, so don't
-        * bother clearing it before.
-        */
-       gfp &= ~__GFP_ZERO;
-
        page = alloc_pages_node(dev_to_node(dev), gfp, order);
        if (page) {
                dma_addr_t addr;