On 30/9/25 06:13, Philippe Mathieu-Daudé wrote:
> Use VirtIODevice::dma_as address space to convert the legacy
> cpu_physical_memory_[un]map() calls to address_space_[un]map().
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/virtio/vhost.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index 6557c58d12a..890d2bac585 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -27,6 +27,7 @@
> #include "migration/blocker.h"
> #include "migration/qemu-file-types.h"
> #include "system/dma.h"
> +#include "system/memory.h"
> #include "trace.h"
>
> /* enabled until disconnected backend stabilizes */
> @@ -455,7 +456,8 @@ static void *vhost_memory_map(struct vhost_dev *dev, hwaddr addr,
> hwaddr *plen, bool is_write)
> {
> if (!vhost_dev_has_iommu(dev)) {
> - return cpu_physical_memory_map(addr, plen, is_write);
> + return address_space_map(vdev->dma_as, addr, plen, is_write,
> + MEMTXATTRS_UNSPECIFIED);
> } else {
> return (void *)(uintptr_t)addr;
> }
> @@ -466,7 +468,7 @@ static void vhost_memory_unmap(struct vhost_dev *dev, void *buffer,
> hwaddr access_len)
> {
> if (!vhost_dev_has_iommu(dev)) {
> - cpu_physical_memory_unmap(buffer, len, is_write, access_len);
> + address_space_unmap(vdev->dma_as, buffer, len, is_write, access_len);
> }
> }
>
Forgot to squash:
-- >8 --
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 890d2bac585..acd359bdb3f 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -456,7 +456,7 @@ static void *vhost_memory_map(struct vhost_dev *dev,
hwaddr addr,
hwaddr *plen, bool is_write)
{
if (!vhost_dev_has_iommu(dev)) {
- return address_space_map(vdev->dma_as, addr, plen, is_write,
+ return address_space_map(dev->vdev->dma_as, addr, plen, is_write,
MEMTXATTRS_UNSPECIFIED);
} else {
return (void *)(uintptr_t)addr;
(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,p,?]? y
@@ -468,7 +468,8 @@ static void vhost_memory_unmap(struct vhost_dev
*dev, void *buffer,
hwaddr access_len)
{
if (!vhost_dev_has_iommu(dev)) {
- address_space_unmap(vdev->dma_as, buffer, len, is_write,
access_len);
+ address_space_unmap(dev->vdev->dma_as, buffer, len, is_write,
+ access_len);
}
}
---