Recently lockless_dereference() was added which can be used in place of
hard-coding smp_read_barrier_depends(). The following PATCH makes the change.

Signed-off-by: Pranith Kumar <bobby.pr...@gmail.com>
---
 include/linux/hyperv.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 08cfaff..06418b1 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -127,13 +127,12 @@ hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info 
*rbi,
                          u32 *read, u32 *write)
 {
        u32 read_loc, write_loc, dsize;
-
-       smp_read_barrier_depends();
+       struct hv_ring_buffer_info *rbi_p = lockless_dereference(rbi);
 
        /* Capture the read/write indices before they changed */
-       read_loc = rbi->ring_buffer->read_index;
-       write_loc = rbi->ring_buffer->write_index;
-       dsize = rbi->ring_datasize;
+       read_loc = rbi_p->ring_buffer->read_index;
+       write_loc = rbi_p->ring_buffer->write_index;
+       dsize = rbi_p->ring_datasize;
 
        *write = write_loc >= read_loc ? dsize - (write_loc - read_loc) :
                read_loc - write_loc;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to