Page MenuHomeFreeBSD

D5164.id12940.diff
No OneTemporary

D5164.id12940.diff

Index: sys/dev/hyperv/vmbus/hv_ring_buffer.c
===================================================================
--- sys/dev/hyperv/vmbus/hv_ring_buffer.c
+++ sys/dev/hyperv/vmbus/hv_ring_buffer.c
@@ -247,7 +247,7 @@
ring_info->ring_size = buffer_len;
ring_info->ring_data_size = buffer_len - sizeof(hv_vmbus_ring_buffer);
- mtx_init(&ring_info->ring_lock, "vmbus ring buffer", NULL, MTX_SPIN);
+ mtx_init(&ring_info->ring_lock, "vmbus ring buffer", NULL, MTX_DEF);
return (0);
}
@@ -285,7 +285,7 @@
total_bytes_to_write += sizeof(uint64_t);
- mtx_lock_spin(&out_ring_info->ring_lock);
+ mtx_lock(&out_ring_info->ring_lock);
get_ring_buffer_avail_bytes(out_ring_info, &byte_avail_to_read,
&byte_avail_to_write);
@@ -298,7 +298,7 @@
if (byte_avail_to_write <= total_bytes_to_write) {
- mtx_unlock_spin(&out_ring_info->ring_lock);
+ mtx_unlock(&out_ring_info->ring_lock);
return (EAGAIN);
}
@@ -334,7 +334,7 @@
*/
set_next_write_location(out_ring_info, next_write_location);
- mtx_unlock_spin(&out_ring_info->ring_lock);
+ mtx_unlock(&out_ring_info->ring_lock);
*need_sig = hv_ring_buffer_needsig_on_write(old_write_location,
out_ring_info);
@@ -355,8 +355,6 @@
uint32_t bytesAvailToRead;
uint32_t nextReadLocation = 0;
- mtx_lock_spin(&in_ring_info->ring_lock);
-
get_ring_buffer_avail_bytes(in_ring_info, &bytesAvailToRead,
&bytesAvailToWrite);
@@ -364,7 +362,6 @@
* Make sure there is something to read
*/
if (bytesAvailToRead < buffer_len) {
- mtx_unlock_spin(&in_ring_info->ring_lock);
return (EAGAIN);
}
@@ -376,8 +373,6 @@
nextReadLocation = copy_from_ring_buffer(
in_ring_info, (char *)buffer, buffer_len, nextReadLocation);
- mtx_unlock_spin(&in_ring_info->ring_lock);
-
return (0);
}
@@ -399,8 +394,6 @@
if (buffer_len <= 0)
return (EINVAL);
- mtx_lock_spin(&in_ring_info->ring_lock);
-
get_ring_buffer_avail_bytes(
in_ring_info, &bytes_avail_to_read,
&bytes_avail_to_write);
@@ -409,7 +402,6 @@
* Make sure there is something to read
*/
if (bytes_avail_to_read < buffer_len) {
- mtx_unlock_spin(&in_ring_info->ring_lock);
return (EAGAIN);
}
@@ -441,8 +433,6 @@
*/
set_next_read_location(in_ring_info, next_read_location);
- mtx_unlock_spin(&in_ring_info->ring_lock);
-
return (0);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 11, 6:17 AM (5 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31215766
Default Alt Text
D5164.id12940.diff (2 KB)

Event Timeline