svn commit: r368524 - head/sys/compat/linuxkpi/common/src

Bryan Drewery bdrewery at FreeBSD.org
Thu Dec 10 20:45:09 UTC 2020


Author: bdrewery
Date: Thu Dec 10 20:45:08 2020
New Revision: 368524
URL: https://svnweb.freebsd.org/changeset/base/368524

Log:
  linux_dma: Ensure proper flags pass to allocators.
  
  Possibly fixes the wrong flags being passed to the kernel
  allocators in linux_dma_alloc_coherent() and linux_dma_pool_alloc().
  
  Reviewed by:	hps
  MFC after:	2 weeks
  Sponsored by:	Dell EMC
  Differential Revision:	https://reviews.freebsd.org/D27508

Modified:
  head/sys/compat/linuxkpi/common/src/linux_pci.c

Modified: head/sys/compat/linuxkpi/common/src/linux_pci.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Dec 10 20:44:29 2020	(r368523)
+++ head/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Dec 10 20:45:08 2020	(r368524)
@@ -625,8 +625,8 @@ linux_dma_alloc_coherent(struct device *dev, size_t si
 	else
 		high = BUS_SPACE_MAXADDR;
 	align = PAGE_SIZE << get_order(size);
-	mem = (void *)kmem_alloc_contig(size, flag, 0, high, align, 0,
-	    VM_MEMATTR_DEFAULT);
+	mem = (void *)kmem_alloc_contig(size, flag & GFP_NATIVE_MASK, 0, high,
+	    align, 0, VM_MEMATTR_DEFAULT);
 	if (mem != NULL) {
 		*dma_handle = linux_dma_map_phys(dev, vtophys(mem), size);
 		if (*dma_handle == 0) {
@@ -932,7 +932,7 @@ linux_dma_pool_alloc(struct dma_pool *pool, gfp_t mem_
 {
 	struct linux_dma_obj *obj;
 
-	obj = uma_zalloc_arg(pool->pool_zone, pool, mem_flags);
+	obj = uma_zalloc_arg(pool->pool_zone, pool, mem_flags & GFP_NATIVE_MASK);
 	if (obj == NULL)
 		return (NULL);
 


More information about the svn-src-head mailing list