summaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@citrix.com>2015-11-16 19:02:32 +0100
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2015-12-18 16:00:41 +0100
commitbe69746ec12f35b484707da505c6c76ff06f97dc (patch)
tree2cb9529b55a599d28327eca9ef5f92f529d6fd08 /drivers/xen
parentxen-blkback: read from indirect descriptors only once (diff)
downloadlinux-be69746ec12f35b484707da505c6c76ff06f97dc.tar.xz
linux-be69746ec12f35b484707da505c6c76ff06f97dc.zip
xen-scsiback: safely copy requests
The copy of the ring request was lacking a following barrier(), potentially allowing the compiler to optimize the copy away. Use RING_COPY_REQUEST() to ensure the request is copied to local memory. This is part of XSA155. CC: stable@vger.kernel.org Reviewed-by: Juergen Gross <jgross@suse.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/xen-scsiback.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
index 9eeefd7cad41..2af9aa8f9b93 100644
--- a/drivers/xen/xen-scsiback.c
+++ b/drivers/xen/xen-scsiback.c
@@ -727,7 +727,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info)
if (!pending_req)
return 1;
- ring_req = *RING_GET_REQUEST(ring, rc);
+ RING_COPY_REQUEST(ring, rc, &ring_req);
ring->req_cons = ++rc;
err = prepare_pending_reqs(info, &ring_req, pending_req);