38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
From 89739c14c72e5c1626a5cd5e09cbb2efeaadb6d8 Mon Sep 17 00:00:00 2001
|
|
From: David Vrabel <david.vrabel@citrix.com>
|
|
Date: Mon, 16 Nov 2015 18:02:32 +0000
|
|
Subject: [PATCH 6/7] 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>
|
|
---
|
|
drivers/xen/xen-scsiback.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
|
|
index 43bcae8..ad4eb10 100644
|
|
--- a/drivers/xen/xen-scsiback.c
|
|
+++ b/drivers/xen/xen-scsiback.c
|
|
@@ -726,7 +726,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);
|
|
--
|
|
2.1.0
|
|
|