[PATCH 04/14] vmbus: eliminate unnecessary wrapper functions
Stephen Hemminger
stephen at networkplumber.org
Tue Jan 24 01:39:53 UTC 2017
The accessor functions for ring buffer are only used once and only in
one file, the code is clearer without them.
Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>
---
drivers/hv/ring_buffer.c | 45 +++++++++------------------------------------
1 file changed, 9 insertions(+), 36 deletions(-)
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
index e24b10e4fcb3..e408886ef171 100644
--- a/drivers/hv/ring_buffer.c
+++ b/drivers/hv/ring_buffer.c
@@ -96,30 +96,6 @@ static void hv_signal_on_write(u32 old_write, struct vmbus_channel *channel,
vmbus_setevent(channel);
}
-/* Get the next write location for the specified ring buffer. */
-static inline u32
-hv_get_next_write_location(struct hv_ring_buffer_info *ring_info)
-{
- u32 next = ring_info->ring_buffer->write_index;
-
- return next;
-}
-
-/* Set the next write location for the specified ring buffer. */
-static inline void
-hv_set_next_write_location(struct hv_ring_buffer_info *ring_info,
- u32 next_write_location)
-{
- ring_info->ring_buffer->write_index = next_write_location;
-}
-
-/* Get the next read location for the specified ring buffer. */
-static inline u32
-hv_get_next_read_location(const struct hv_ring_buffer_info *ring_info)
-{
- return ring_info->ring_buffer->read_index;
-}
-
/*
* Get the next read location + offset for the specified ring buffer.
* This allows the caller to skip.
@@ -170,7 +146,7 @@ static u32 hv_copyfrom_ringbuffer(
u32 start_read_offset)
{
void *ring_buffer = hv_get_ring_buffer(ring_info);
- u32 ring_buffer_size = hv_get_ring_buffersize(ring_info);
+ u32 ring_buffer_size = ring_info->ring_datasize;
memcpy(dest, ring_buffer + start_read_offset, destlen);
@@ -192,7 +168,7 @@ static u32 hv_copyto_ringbuffer(
u32 srclen)
{
void *ring_buffer = hv_get_ring_buffer(ring_info);
- u32 ring_buffer_size = hv_get_ring_buffersize(ring_info);
+ u32 ring_buffer_size = ring_info->ring_datasize;
memcpy(ring_buffer + start_write_offset, src, srclen);
@@ -319,9 +295,9 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
}
/* Write to the ring buffer */
- next_write_location = hv_get_next_write_location(outring_info);
+ next_write_location = outring_info->ring_buffer->write_index;
- old_write = next_write_location;
+ old_write = outring_info->ring_buffer->write_index;
for (i = 0; i < kv_count; i++) {
next_write_location = hv_copyto_ringbuffer(outring_info,
@@ -331,8 +307,7 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
}
/* Set previous packet start */
- prev_indices = hv_get_ring_bufferindices(outring_info);
-
+ prev_indices = (u64)outring_info->ring_buffer->write_index << 32;
next_write_location = hv_copyto_ringbuffer(outring_info,
next_write_location,
&prev_indices,
@@ -342,8 +317,7 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
virt_mb();
/* Now, update the write location */
- hv_set_next_write_location(outring_info, next_write_location);
-
+ outring_info->ring_buffer->write_index = next_write_location;
if (lock)
spin_unlock_irqrestore(&outring_info->ring_lock, flags);
@@ -386,10 +360,9 @@ int hv_ringbuffer_read(struct vmbus_channel *channel,
return ret;
}
- next_read_location = hv_get_next_read_location(inring_info);
- next_read_location = hv_copyfrom_ringbuffer(inring_info, &desc,
- sizeof(desc),
- next_read_location);
+ next_read_location = hv_copyfrom_ringbuffer(inring_info,
+ &desc, sizeof(desc),
+ inring_info->ring_buffer->read_index);
offset = raw ? 0 : (desc.offset8 << 3);
packetlen = (desc.len8 << 3) - offset;
--
2.11.0
More information about the devel
mailing list