218 lines
6.6 KiB
Diff
218 lines
6.6 KiB
Diff
--- sys/dev/hyperv/vmbus/hv_channel.c.orig
|
|
+++ sys/dev/hyperv/vmbus/hv_channel.c
|
|
@@ -180,12 +180,12 @@
|
|
if (user_data_len)
|
|
memcpy(open_msg->user_data, user_data, user_data_len);
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_INSERT_TAIL(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
open_info,
|
|
msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
ret = hv_vmbus_post_message(
|
|
open_msg, sizeof(hv_vmbus_channel_open_channel));
|
|
@@ -212,12 +212,12 @@
|
|
}
|
|
|
|
cleanup:
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_REMOVE(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
open_info,
|
|
msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
sema_destroy(&open_info->wait_sema);
|
|
free(open_info, M_DEVBUF);
|
|
|
|
@@ -401,13 +401,13 @@
|
|
gpadl_msg->child_rel_id = channel->offer_msg.child_rel_id;
|
|
gpadl_msg->gpadl = next_gpadl_handle;
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_INSERT_TAIL(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_info,
|
|
msg_list_entry);
|
|
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
ret = hv_vmbus_post_message(
|
|
gpadl_msg,
|
|
@@ -446,10 +446,10 @@
|
|
|
|
cleanup:
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_REMOVE(&hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_info, msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
sema_destroy(&msg_info->wait_sema);
|
|
free(msg_info, M_DEVBUF);
|
|
@@ -488,10 +488,10 @@
|
|
msg->child_rel_id = channel->offer_msg.child_rel_id;
|
|
msg->gpadl = gpadl_handle;
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_INSERT_TAIL(&hv_vmbus_g_connection.channel_msg_anchor,
|
|
info, msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
ret = hv_vmbus_post_message(msg,
|
|
sizeof(hv_vmbus_channel_gpadl_teardown));
|
|
@@ -504,10 +504,10 @@
|
|
/*
|
|
* Received a torndown response
|
|
*/
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_REMOVE(&hv_vmbus_g_connection.channel_msg_anchor,
|
|
info, msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
sema_destroy(&info->wait_sema);
|
|
free(info, M_DEVBUF);
|
|
|
|
--- sys/dev/hyperv/vmbus/hv_channel_mgmt.c.orig
|
|
+++ sys/dev/hyperv/vmbus/hv_channel_mgmt.c
|
|
@@ -567,7 +567,7 @@
|
|
/*
|
|
* Find the open msg, copy the result and signal/unblock the wait event
|
|
*/
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_list_entry) {
|
|
@@ -585,7 +585,7 @@
|
|
}
|
|
}
|
|
}
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
}
|
|
|
|
@@ -609,7 +609,7 @@
|
|
/* Find the establish msg, copy the result and signal/unblock
|
|
* the wait event
|
|
*/
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_list_entry) {
|
|
request_header = (hv_vmbus_channel_msg_header*) msg_info->msg;
|
|
@@ -628,7 +628,7 @@
|
|
}
|
|
}
|
|
}
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
}
|
|
|
|
/**
|
|
@@ -653,7 +653,7 @@
|
|
* wait event.
|
|
*/
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_list_entry) {
|
|
@@ -673,7 +673,7 @@
|
|
}
|
|
}
|
|
}
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
}
|
|
|
|
/**
|
|
@@ -693,7 +693,7 @@
|
|
|
|
versionResponse = (hv_vmbus_channel_version_response*)hdr;
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_FOREACH(msg_info, &hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_list_entry) {
|
|
requestHeader = (hv_vmbus_channel_msg_header*) msg_info->msg;
|
|
@@ -707,7 +707,7 @@
|
|
sema_post(&msg_info->wait_sema);
|
|
}
|
|
}
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
}
|
|
|
|
--- sys/dev/hyperv/vmbus/hv_connection.c.orig
|
|
+++ sys/dev/hyperv/vmbus/hv_connection.c
|
|
@@ -101,26 +101,26 @@
|
|
* Add to list before we send the request since we may receive the
|
|
* response before returning from this routine
|
|
*/
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
TAILQ_INSERT_TAIL(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_info,
|
|
msg_list_entry);
|
|
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
ret = hv_vmbus_post_message(
|
|
msg,
|
|
sizeof(hv_vmbus_channel_initiate_contact));
|
|
|
|
if (ret != 0) {
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_REMOVE(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_info,
|
|
msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
return (ret);
|
|
}
|
|
|
|
@@ -129,12 +129,12 @@
|
|
*/
|
|
ret = sema_timedwait(&msg_info->wait_sema, 5 * hz); /* KYS 5 seconds */
|
|
|
|
- mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_lock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
TAILQ_REMOVE(
|
|
&hv_vmbus_g_connection.channel_msg_anchor,
|
|
msg_info,
|
|
msg_list_entry);
|
|
- mtx_unlock_spin(&hv_vmbus_g_connection.channel_msg_lock);
|
|
+ mtx_unlock(&hv_vmbus_g_connection.channel_msg_lock);
|
|
|
|
/**
|
|
* Check if successful
|
|
@@ -173,7 +173,7 @@
|
|
|
|
TAILQ_INIT(&hv_vmbus_g_connection.channel_msg_anchor);
|
|
mtx_init(&hv_vmbus_g_connection.channel_msg_lock, "vmbus channel msg",
|
|
- NULL, MTX_SPIN);
|
|
+ NULL, MTX_DEF);
|
|
|
|
TAILQ_INIT(&hv_vmbus_g_connection.channel_anchor);
|
|
mtx_init(&hv_vmbus_g_connection.channel_lock, "vmbus channel",
|