|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] [PATCH 2/4] linux/blktap: fix racy memory refernce with
blktap: fix race memory refernce with ring_ok.
fix race memory refernce with ring_ok.
ring_ok is shared by mmapping process and blktap kernel thread.
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
diff --git a/drivers/xen/blktap/blktap.c b/drivers/xen/blktap/blktap.c
--- a/drivers/xen/blktap/blktap.c
+++ b/drivers/xen/blktap/blktap.c
@@ -617,6 +617,9 @@ static int blktap_release(struct inode *
if (!info)
return 0;
+ info->ring_ok = 0;
+ smp_wmb();
+
info->dev_inuse = 0;
DPRINTK("Freeing device [/dev/xen/blktap%d]\n",info->minor);
@@ -717,6 +720,7 @@ static int blktap_mmap(struct file *filp
#endif
info->vma = vma;
+ smp_wmb();
info->ring_ok = 1;
return 0;
fail:
@@ -1390,6 +1394,7 @@ static void dispatch_rw_block_io(blkif_t
WPRINTK("blktap: ring not ready for requests!\n");
goto fail_response;
}
+ smp_rmb();
if (RING_FULL(&info->ufe_ring)) {
WPRINTK("blktap: fe_ring is full, can't add "
1-fix-race-in-blktap.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-ia64-devel] [PATCH 2/4] linux/blktap: fix racy memory refernce with ring_ok,
Isaku Yamahata <=
|
|
|
|
|