diff options
author | David Vrabel <david.vrabel@citrix.com> | 2015-11-16 18:02:32 +0000 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2015-12-18 10:00:41 -0500 |
commit | be69746ec12f35b484707da505c6c76ff06f97dc (patch) | |
tree | 2cb9529b55a599d28327eca9ef5f92f529d6fd08 /drivers/xen | |
parent | 18779149101c0dd43ded43669ae2a92d21b6f9cb (diff) | |
download | linux-be69746ec12f35b484707da505c6c76ff06f97dc.tar.gz linux-be69746ec12f35b484707da505c6c76ff06f97dc.tar.bz2 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.c | 2 |
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); |