| 284 | } |
| 285 | |
| 286 | void |
| 287 | __vhost_log_cache_write_iova(struct virtio_net *dev, struct vhost_virtqueue *vq, |
| 288 | uint64_t iova, uint64_t len) |
| 289 | { |
| 290 | uint64_t hva, gpa, map_len; |
| 291 | map_len = len; |
| 292 | |
| 293 | hva = __vhost_iova_to_vva(dev, vq, iova, &map_len, VHOST_ACCESS_RW); |
| 294 | if (map_len != len) { |
| 295 | VHOST_LOG_DATA(dev->ifname, ERR, |
| 296 | "failed to write log for IOVA 0x%" PRIx64 ". No IOTLB entry found\n", |
| 297 | iova); |
| 298 | return; |
| 299 | } |
| 300 | |
| 301 | gpa = hva_to_gpa(dev, hva, len); |
| 302 | if (gpa) |
| 303 | __vhost_log_cache_write(dev, vq, gpa, len); |
| 304 | } |
| 305 | |
| 306 | void * |
| 307 | vhost_alloc_copy_ind_table(struct virtio_net *dev, struct vhost_virtqueue *vq, |
no test coverage detected