mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
vmbus: replace modulus operation with subtraction
Takes less clock cycles to check for ring wrap and subtract than to do a modulus instruction. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: K. Y. Srinivasan <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
e4165a0fad
commit
8d12f88257
1 changed files with 6 additions and 3 deletions
|
|
@ -112,7 +112,8 @@ hv_get_next_readlocation_withoffset(const struct hv_ring_buffer_info *ring_info,
|
|||
u32 next = ring_info->ring_buffer->read_index;
|
||||
|
||||
next += offset;
|
||||
next %= ring_info->ring_datasize;
|
||||
if (next >= ring_info->ring_datasize)
|
||||
next -= ring_info->ring_datasize;
|
||||
|
||||
return next;
|
||||
}
|
||||
|
|
@ -156,7 +157,8 @@ static u32 hv_copyfrom_ringbuffer(
|
|||
memcpy(dest, ring_buffer + start_read_offset, destlen);
|
||||
|
||||
start_read_offset += destlen;
|
||||
start_read_offset %= ring_buffer_size;
|
||||
if (start_read_offset >= ring_buffer_size)
|
||||
start_read_offset -= ring_buffer_size;
|
||||
|
||||
return start_read_offset;
|
||||
}
|
||||
|
|
@ -178,7 +180,8 @@ static u32 hv_copyto_ringbuffer(
|
|||
memcpy(ring_buffer + start_write_offset, src, srclen);
|
||||
|
||||
start_write_offset += srclen;
|
||||
start_write_offset %= ring_buffer_size;
|
||||
if (start_write_offset >= ring_buffer_size)
|
||||
start_write_offset -= ring_buffer_size;
|
||||
|
||||
return start_write_offset;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue