lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 9 Oct 2020 11:46:28 +0800 From: Jason Wang <jasowang@...hat.com> To: Eli Cohen <elic@...dia.com> Cc: mst@...hat.com, lulu@...hat.com, kvm@...r.kernel.org, virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, rob.miller@...adcom.com, lingshan.zhu@...el.com, eperezma@...hat.com, hanand@...inx.com, mhabets@...arflare.com, amorenoz@...hat.com, maxime.coquelin@...hat.com, stefanha@...hat.com, sgarzare@...hat.com Subject: Re: [RFC PATCH 06/24] vhost-vdpa: switch to use vhost-vdpa specific IOTLB On 2020/9/30 下午8:02, Eli Cohen wrote: > On Thu, Sep 24, 2020 at 11:21:07AM +0800, Jason Wang wrote: >> To ease the implementation of per group ASID support for vDPA >> device. This patch switches to use a vhost-vdpa specific IOTLB to >> avoid the unnecessary refactoring of the vhost core. >> >> Signed-off-by: Jason Wang <jasowang@...hat.com> >> --- >> drivers/vhost/vdpa.c | 14 ++++++++------ >> 1 file changed, 8 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c >> index 74bef1c15a70..ec3c94f706c1 100644 >> --- a/drivers/vhost/vdpa.c >> +++ b/drivers/vhost/vdpa.c >> @@ -40,6 +40,7 @@ struct vhost_vdpa { >> struct vhost_virtqueue *vqs; >> struct completion completion; >> struct vdpa_device *vdpa; >> + struct vhost_iotlb *iotlb; >> struct device dev; >> struct cdev cdev; >> atomic_t opened; >> @@ -514,12 +515,11 @@ static void vhost_vdpa_iotlb_unmap(struct vhost_vdpa *v, >> >> static void vhost_vdpa_iotlb_free(struct vhost_vdpa *v) >> { >> - struct vhost_dev *dev = &v->vdev; >> - struct vhost_iotlb *iotlb = dev->iotlb; >> + struct vhost_iotlb *iotlb = v->iotlb; >> >> vhost_vdpa_iotlb_unmap(v, iotlb, 0ULL, 0ULL - 1); >> - kfree(dev->iotlb); >> - dev->iotlb = NULL; >> + kfree(v->iotlb); >> + v->iotlb = NULL; >> } >> >> static int perm_to_iommu_flags(u32 perm) >> @@ -681,7 +681,7 @@ static int vhost_vdpa_process_iotlb_msg(struct vhost_dev *dev, >> struct vhost_vdpa *v = container_of(dev, struct vhost_vdpa, vdev); >> struct vdpa_device *vdpa = v->vdpa; >> const struct vdpa_config_ops *ops = vdpa->config; >> - struct vhost_iotlb *iotlb = dev->iotlb; >> + struct vhost_iotlb *iotlb = v->iotlb; >> int r = 0; >> >> r = vhost_dev_check_owner(dev); >> @@ -812,12 +812,14 @@ static int vhost_vdpa_open(struct inode *inode, struct file *filep) >> >> r = vhost_vdpa_alloc_domain(v); >> if (r) >> - goto err_init_iotlb; >> + goto err_alloc_domain; > You're still using this: > dev->iotlb = vhost_iotlb_alloc(0, 0); > > Shouldn't you use > v->iotlb = host_iotlb_alloc(0, 0); > > to set the vdpa device iotlb field? Yes, you're right. Will fix. Thanks > >> >> filep->private_data = v; >> >> return 0; >> >> +err_alloc_domain: >> + vhost_vdpa_iotlb_free(v); >> err_init_iotlb: >> vhost_vdpa_cleanup(v); >> err: >> -- >> 2.20.1 >>
Powered by blists - more mailing lists