| 166 | } |
| 167 | |
| 168 | void |
| 169 | __vhost_log_write_iova(struct virtio_net *dev, struct vhost_virtqueue *vq, |
| 170 | uint64_t iova, uint64_t len) |
| 171 | { |
| 172 | uint64_t hva, gpa, map_len; |
| 173 | map_len = len; |
| 174 | |
| 175 | hva = __vhost_iova_to_vva(dev, vq, iova, &map_len, VHOST_ACCESS_RW); |
| 176 | if (map_len != len) { |
| 177 | VHOST_LOG_DATA(dev->ifname, ERR, |
| 178 | "failed to write log for IOVA 0x%" PRIx64 ". No IOTLB entry found\n", |
| 179 | iova); |
| 180 | return; |
| 181 | } |
| 182 | |
| 183 | gpa = hva_to_gpa(dev, hva, len); |
| 184 | if (gpa) |
| 185 | __vhost_log_write(dev, gpa, len); |
| 186 | } |
| 187 | |
| 188 | void |
| 189 | __vhost_log_cache_sync(struct virtio_net *dev, struct vhost_virtqueue *vq) |
no test coverage detected