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",
 |