Commit be69746e authored by David Vrabel's avatar David Vrabel Committed by Konrad Rzeszutek Wilk

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: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 18779149
...@@ -727,7 +727,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info) ...@@ -727,7 +727,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info)
if (!pending_req) if (!pending_req)
return 1; return 1;
ring_req = *RING_GET_REQUEST(ring, rc); RING_COPY_REQUEST(ring, rc, &ring_req);
ring->req_cons = ++rc; ring->req_cons = ++rc;
err = prepare_pending_reqs(info, &ring_req, pending_req); err = prepare_pending_reqs(info, &ring_req, pending_req);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment