Skip to content

Commit

Permalink
mm: remove the prot argument from vm_map_ram
Browse files Browse the repository at this point in the history
This is always PAGE_KERNEL - for long term mappings with other properties
vmap should be used.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Christian Borntraeger <[email protected]>
Cc: Christophe Leroy <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Gao Xiang <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Haiyang Zhang <[email protected]>
Cc: Johannes Weiner <[email protected]>
Cc: "K. Y. Srinivasan" <[email protected]>
Cc: Laura Abbott <[email protected]>
Cc: Mark Rutland <[email protected]>
Cc: Michael Kelley <[email protected]>
Cc: Minchan Kim <[email protected]>
Cc: Nitin Gupta <[email protected]>
Cc: Robin Murphy <[email protected]>
Cc: Sakari Ailus <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Cc: Sumit Semwal <[email protected]>
Cc: Wei Liu <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Catalin Marinas <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Vasily Gorbik <[email protected]>
Cc: Will Deacon <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
Christoph Hellwig authored and torvalds committed Jun 2, 2020
1 parent 855e57a commit d4efd79
Showing 8 changed files with 9 additions and 12 deletions.
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c
Original file line number Diff line number Diff line change
@@ -66,7 +66,7 @@ static void *mock_dmabuf_vmap(struct dma_buf *dma_buf)
{
struct mock_dmabuf *mock = to_mock(dma_buf);

return vm_map_ram(mock->pages, mock->npages, 0, PAGE_KERNEL);
return vm_map_ram(mock->pages, mock->npages, 0);
}

static void mock_dmabuf_vunmap(struct dma_buf *dma_buf, void *vaddr)
3 changes: 1 addition & 2 deletions drivers/media/common/videobuf2/videobuf2-dma-sg.c
Original file line number Diff line number Diff line change
@@ -309,8 +309,7 @@ static void *vb2_dma_sg_vaddr(void *buf_priv)
if (buf->db_attach)
buf->vaddr = dma_buf_vmap(buf->db_attach->dmabuf);
else
buf->vaddr = vm_map_ram(buf->pages,
buf->num_pages, -1, PAGE_KERNEL);
buf->vaddr = vm_map_ram(buf->pages, buf->num_pages, -1);
}

/* add offset in case userptr is not page-aligned */
3 changes: 1 addition & 2 deletions drivers/media/common/videobuf2/videobuf2-vmalloc.c
Original file line number Diff line number Diff line change
@@ -107,8 +107,7 @@ static void *vb2_vmalloc_get_userptr(struct device *dev, unsigned long vaddr,
buf->vaddr = (__force void *)
ioremap(__pfn_to_phys(nums[0]), size + offset);
} else {
buf->vaddr = vm_map_ram(frame_vector_pages(vec), n_pages, -1,
PAGE_KERNEL);
buf->vaddr = vm_map_ram(frame_vector_pages(vec), n_pages, -1);
}

if (!buf->vaddr)
2 changes: 1 addition & 1 deletion fs/erofs/decompressor.c
Original file line number Diff line number Diff line change
@@ -274,7 +274,7 @@ static int z_erofs_decompress_generic(struct z_erofs_decompress_req *rq,

i = 0;
while (1) {
dst = vm_map_ram(rq->out, nrpages_out, -1, PAGE_KERNEL);
dst = vm_map_ram(rq->out, nrpages_out, -1);

/* retry two more times (totally 3 times) */
if (dst || ++i >= 3)
2 changes: 1 addition & 1 deletion fs/xfs/xfs_buf.c
Original file line number Diff line number Diff line change
@@ -477,7 +477,7 @@ _xfs_buf_map_pages(
nofs_flag = memalloc_nofs_save();
do {
bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count,
-1, PAGE_KERNEL);
-1);
if (bp->b_addr)
break;
vm_unmap_aliases();
3 changes: 1 addition & 2 deletions include/linux/vmalloc.h
Original file line number Diff line number Diff line change
@@ -88,8 +88,7 @@ struct vmap_area {
* Highlevel APIs for driver use
*/
extern void vm_unmap_ram(const void *mem, unsigned int count);
extern void *vm_map_ram(struct page **pages, unsigned int count,
int node, pgprot_t prot);
extern void *vm_map_ram(struct page **pages, unsigned int count, int node);
extern void vm_unmap_aliases(void);

#ifdef CONFIG_MMU
2 changes: 1 addition & 1 deletion mm/nommu.c
Original file line number Diff line number Diff line change
@@ -351,7 +351,7 @@ void vunmap(const void *addr)
}
EXPORT_SYMBOL(vunmap);

void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t prot)
void *vm_map_ram(struct page **pages, unsigned int count, int node)
{
BUG();
return NULL;
4 changes: 2 additions & 2 deletions mm/vmalloc.c
Original file line number Diff line number Diff line change
@@ -1835,7 +1835,7 @@ EXPORT_SYMBOL(vm_unmap_ram);
*
* Returns: a pointer to the address that has been mapped, or %NULL on failure
*/
void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t prot)
void *vm_map_ram(struct page **pages, unsigned int count, int node)
{
unsigned long size = (unsigned long)count << PAGE_SHIFT;
unsigned long addr;
@@ -1859,7 +1859,7 @@ void *vm_map_ram(struct page **pages, unsigned int count, int node, pgprot_t pro

kasan_unpoison_vmalloc(mem, size);

if (map_kernel_range(addr, size, prot, pages) < 0) {
if (map_kernel_range(addr, size, PAGE_KERNEL, pages) < 0) {
vm_unmap_ram(mem, count);
return NULL;
}

0 comments on commit d4efd79

Please sign in to comment.