You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
xen/pvcalls: use alloc/free_pages_exact()
Commit b0576cc9c6 upstream.
Instead of __get_free_pages() and free_pages() use alloc_pages_exact()
and free_pages_exact(). This is in preparation of a change of
gnttab_end_foreign_access() which will prohibit use of high-order
pages.
This is part of CVE-2022-23041 / XSA-396.
Reported-by: Simon Gaiser <simon@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8357d75bfd
commit
c4b16486d6
@@ -337,8 +337,8 @@ static void free_active_ring(struct sock_mapping *map)
|
||||
if (!map->active.ring)
|
||||
return;
|
||||
|
||||
free_pages((unsigned long)map->active.data.in,
|
||||
map->active.ring->ring_order);
|
||||
free_pages_exact(map->active.data.in,
|
||||
PAGE_SIZE << map->active.ring->ring_order);
|
||||
free_page((unsigned long)map->active.ring);
|
||||
}
|
||||
|
||||
@@ -352,8 +352,8 @@ static int alloc_active_ring(struct sock_mapping *map)
|
||||
goto out;
|
||||
|
||||
map->active.ring->ring_order = PVCALLS_RING_ORDER;
|
||||
bytes = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
|
||||
PVCALLS_RING_ORDER);
|
||||
bytes = alloc_pages_exact(PAGE_SIZE << PVCALLS_RING_ORDER,
|
||||
GFP_KERNEL | __GFP_ZERO);
|
||||
if (!bytes)
|
||||
goto out;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user