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
This commit is contained in:
parent
04477ecaf2
commit
f623166c73
@ -625,8 +625,8 @@ linux_dma_alloc_coherent(struct device *dev, size_t size,
|
|||||||
else
|
else
|
||||||
high = BUS_SPACE_MAXADDR;
|
high = BUS_SPACE_MAXADDR;
|
||||||
align = PAGE_SIZE << get_order(size);
|
align = PAGE_SIZE << get_order(size);
|
||||||
mem = (void *)kmem_alloc_contig(size, flag, 0, high, align, 0,
|
mem = (void *)kmem_alloc_contig(size, flag & GFP_NATIVE_MASK, 0, high,
|
||||||
VM_MEMATTR_DEFAULT);
|
align, 0, VM_MEMATTR_DEFAULT);
|
||||||
if (mem != NULL) {
|
if (mem != NULL) {
|
||||||
*dma_handle = linux_dma_map_phys(dev, vtophys(mem), size);
|
*dma_handle = linux_dma_map_phys(dev, vtophys(mem), size);
|
||||||
if (*dma_handle == 0) {
|
if (*dma_handle == 0) {
|
||||||
@ -932,7 +932,7 @@ linux_dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
|
|||||||
{
|
{
|
||||||
struct linux_dma_obj *obj;
|
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)
|
if (obj == NULL)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user