On Thu, Sep 20, 2018 at 11:08 AM, Christoph Hellwig <[email protected]> wrote: > On Thu, Sep 20, 2018 at 10:44:55AM -0700, Max Filippov wrote: >> Hi Christoph, >> >> On Thu, Sep 20, 2018 at 10:15 AM, Christoph Hellwig <[email protected]> wrote: >> > This reverts commit 6137e4166004e2ec383ac05d5ca15831f4668806. >> > >> > We explicitly clear GFP_HIGHMEM from the allowed dma flags at the beginning >> > of the function (and the generic dma_alloc_attr function calling us does >> > the >> > same!), so this code just adds dead wood. >> >> No, not really: dma_alloc_from_contiguous does not accept flags (only >> no_warn bit) >> and may return arbitrary pages. That's the case that this code is handling. > > dma_alloc_from_contiguous calls cma_alloc to do the actual > allocation, and that uses alloc_contig_range with the GFP_KERNEL > flag. How do you end up getting highmem patches from it?
I'm not familiar with the details of alloc_contig_range implementation, but I don't see how gfp_mask is used to limit allocation to non-high memory. So when alloc_contig_range gets start and end PFNs in high memory (from the CMA region allocated in high memory) it just returns high memory pages -- that's what I see. -- Thanks. -- Max _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
