tcm_vhost: Use ACCESS_ONCE for vs->vs_tpg[target] access
In vhost_scsi_handle_vq: tv_tpg = vs->vs_tpg[target]; if (!tv_tpg) { .... return } tv_cmd = vhost_scsi_allocate_cmd(tv_tpg, &v_req, 1) vs->vs_tpg[target] might change after the NULL check and 2) the above line might access tv_tpg from vs->vs_tpg[target]. To prevent 2), use ACCESS_ONCE. Thanks mst for catching this up! Signed-off-by: Asias He <asias@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
f85eda8d75
commit
af0d9187f6
|
@ -661,7 +661,7 @@ static void vhost_scsi_handle_vq(struct vhost_scsi *vs,
|
||||||
|
|
||||||
/* Extract the tpgt */
|
/* Extract the tpgt */
|
||||||
target = v_req.lun[1];
|
target = v_req.lun[1];
|
||||||
tv_tpg = vs->vs_tpg[target];
|
tv_tpg = ACCESS_ONCE(vs->vs_tpg[target]);
|
||||||
|
|
||||||
/* Target does not exist, fail the request */
|
/* Target does not exist, fail the request */
|
||||||
if (unlikely(!tv_tpg)) {
|
if (unlikely(!tv_tpg)) {
|
||||||
|
|
Loading…
Reference in a new issue