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:
parent
8357d75bfd
commit
c4b16486d6
1 changed files with 4 additions and 4 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue