mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-24 22:55:35 +08:00
staging: vc04_services: Convert kmap() to kmap_local_page()
The use of kmap() is being deprecated in favor of kmap_local_page() where it is feasible. In file interface/vchiq_arm/vchiq_arm.c, function free_pagelist() calls kmap() / kunmap() from two places. With kmap_local_page(), the mapping is per thread, CPU local and not globally visible. Therefore, free_pagelist() is a function where the use of kmap_local_page() in place of kmap() is correctly suited. Convert to kmap_local_page() but, instead of open coding it, use the memcpy_to_page() helper. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> Link: https://lore.kernel.org/r/20220330191414.23141-1-fmdefrancesco@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8a56b5ce77
commit
47f46a873d
@ -431,21 +431,18 @@ free_pagelist(struct vchiq_pagelist_info *pagelistinfo,
|
||||
if (head_bytes > actual)
|
||||
head_bytes = actual;
|
||||
|
||||
memcpy((char *)kmap(pages[0]) +
|
||||
memcpy_to_page(pages[0],
|
||||
pagelist->offset,
|
||||
fragments,
|
||||
head_bytes);
|
||||
kunmap(pages[0]);
|
||||
}
|
||||
if ((actual >= 0) && (head_bytes < actual) &&
|
||||
(tail_bytes != 0)) {
|
||||
memcpy((char *)kmap(pages[num_pages - 1]) +
|
||||
((pagelist->offset + actual) &
|
||||
(PAGE_SIZE - 1) & ~(g_cache_line_size - 1)),
|
||||
(tail_bytes != 0))
|
||||
memcpy_to_page(pages[num_pages - 1],
|
||||
(pagelist->offset + actual) &
|
||||
(PAGE_SIZE - 1) & ~(g_cache_line_size - 1),
|
||||
fragments + g_cache_line_size,
|
||||
tail_bytes);
|
||||
kunmap(pages[num_pages - 1]);
|
||||
}
|
||||
|
||||
down(&g_free_fragments_mutex);
|
||||
*(char **)fragments = g_free_fragments;
|
||||
|
Loading…
Reference in New Issue
Block a user