mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
xen/virtio: Fix n_pages calculation in xen_grant_dma_map(unmap)_page()
Take page offset into the account when calculating the number of pages to be granted. Fixes: d6aca3504c7d ("xen/grant-dma-ops: Add option to restrict memory access under Xen") Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Reviewed-by: Juergen Gross <jgross@suse.com> Link: https://lore.kernel.org/r/20221005174823.1800761-2-olekstysh@gmail.com Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
parent
06c62f8cbb
commit
e433715b11
@ -153,7 +153,7 @@ static dma_addr_t xen_grant_dma_map_page(struct device *dev, struct page *page,
|
|||||||
unsigned long attrs)
|
unsigned long attrs)
|
||||||
{
|
{
|
||||||
struct xen_grant_dma_data *data;
|
struct xen_grant_dma_data *data;
|
||||||
unsigned int i, n_pages = PFN_UP(size);
|
unsigned int i, n_pages = PFN_UP(offset + size);
|
||||||
grant_ref_t grant;
|
grant_ref_t grant;
|
||||||
dma_addr_t dma_handle;
|
dma_addr_t dma_handle;
|
||||||
|
|
||||||
@ -185,7 +185,8 @@ static void xen_grant_dma_unmap_page(struct device *dev, dma_addr_t dma_handle,
|
|||||||
unsigned long attrs)
|
unsigned long attrs)
|
||||||
{
|
{
|
||||||
struct xen_grant_dma_data *data;
|
struct xen_grant_dma_data *data;
|
||||||
unsigned int i, n_pages = PFN_UP(size);
|
unsigned long offset = dma_handle & (PAGE_SIZE - 1);
|
||||||
|
unsigned int i, n_pages = PFN_UP(offset + size);
|
||||||
grant_ref_t grant;
|
grant_ref_t grant;
|
||||||
|
|
||||||
if (WARN_ON(dir == DMA_NONE))
|
if (WARN_ON(dir == DMA_NONE))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user