swiotlb-xen: ensure to issue well-formed XENMEM_exchange requests
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Sep 2021 10:45:49 +0000 (12:45 +0200)
committerJuergen Gross <jgross@suse.com>
Mon, 20 Sep 2021 15:01:07 +0000 (17:01 +0200)
While the hypervisor hasn't been enforcing this, we would still better
avoid issuing requests with GFNs not aligned to the requested order.
Instead of altering the value also in the call to panic(), drop it
there for being static and hence easy to determine without being part
of the panic message.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Link: https://lore.kernel.org/r/7b3998e3-1233-4e5a-89ec-d740e77eb166@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/swiotlb-xen.c

index 9c9ba500ef23575a33bc76e41b57e66cffa00019..c0c38672fee341a1d2677ad508b5b3e31e16f7d7 100644 (file)
@@ -230,10 +230,11 @@ retry:
        /*
         * Get IO TLB memory from any location.
         */
-       start = memblock_alloc(PAGE_ALIGN(bytes), PAGE_SIZE);
+       start = memblock_alloc(PAGE_ALIGN(bytes),
+                              IO_TLB_SEGSIZE << IO_TLB_SHIFT);
        if (!start)
-               panic("%s: Failed to allocate %lu bytes align=0x%lx\n",
-                     __func__, PAGE_ALIGN(bytes), PAGE_SIZE);
+               panic("%s: Failed to allocate %lu bytes\n",
+                     __func__, PAGE_ALIGN(bytes));
 
        /*
         * And replace that memory with pages under 4GB.