Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'for-linus-6.0-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fix from Juergen Gross:
"A single fix for an issue in the xenbus driver (initialization of
multi-page rings for Xen PV devices)"

* tag 'for-linus-6.0-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/xenbus: fix xenbus_setup_ring()

+6 -3
+6 -3
drivers/xen/xenbus/xenbus_client.c
··· 382 382 unsigned long ring_size = nr_pages * XEN_PAGE_SIZE; 383 383 grant_ref_t gref_head; 384 384 unsigned int i; 385 + void *addr; 385 386 int ret; 386 387 387 - *vaddr = alloc_pages_exact(ring_size, gfp | __GFP_ZERO); 388 + addr = *vaddr = alloc_pages_exact(ring_size, gfp | __GFP_ZERO); 388 389 if (!*vaddr) { 389 390 ret = -ENOMEM; 390 391 goto err; ··· 402 401 unsigned long gfn; 403 402 404 403 if (is_vmalloc_addr(*vaddr)) 405 - gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr[i])); 404 + gfn = pfn_to_gfn(vmalloc_to_pfn(addr)); 406 405 else 407 - gfn = virt_to_gfn(vaddr[i]); 406 + gfn = virt_to_gfn(addr); 408 407 409 408 grefs[i] = gnttab_claim_grant_reference(&gref_head); 410 409 gnttab_grant_foreign_access_ref(grefs[i], dev->otherend_id, 411 410 gfn, 0); 411 + 412 + addr += XEN_PAGE_SIZE; 412 413 } 413 414 414 415 return 0;