From: Michael S. Tsirkin Date: Sun, 28 Apr 2013 12:38:52 +0000 (+0300) Subject: tcm_vhost: document inflight ref-counting use X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3dfbff328f0491b7049673cf7fd568d26a14fc4d;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git tcm_vhost: document inflight ref-counting use Add more comments so we remember not to break it next time we change things. Signed-off-by: Michael S. Tsirkin --- diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c index afb530887936..96d3b47c82cd 100644 --- a/drivers/vhost/tcm_vhost.c +++ b/drivers/vhost/tcm_vhost.c @@ -83,9 +83,16 @@ struct vhost_scsi_inflight { struct vhost_scsi_virtqueue { struct vhost_virtqueue vq; - /* Track inflight reqs, protected by vq->mutex */ + /* + * Reference counting for inflight reqs, used for flush operation. At + * each time, one reference tracks new commands submitted, while we + * wait for another one to reach 0. + */ struct vhost_scsi_inflight inflights[2]; - /* Indicate current inflight in use, protected by vq->mutex */ + /* + * Indicate current inflight in use, protected by vq->mutex. + * Writers must also take dev mutex and flush under it. + */ int inflight_idx; }; @@ -1015,6 +1022,7 @@ static void vhost_scsi_flush_vq(struct vhost_scsi *vs, int index) vhost_poll_flush(&vs->vqs[index].vq.poll); } +/* Callers must hold dev mutex */ static void vhost_scsi_flush(struct vhost_scsi *vs) { struct vhost_scsi_inflight *old_inflight[VHOST_SCSI_MAX_VQ];