svn commit: r296028 - in head/sys/dev/hyperv: netvsc vmbus
Sepherosa Ziehau
sephe at FreeBSD.org
Thu Feb 25 09:27:52 UTC 2016
Author: sephe
Date: Thu Feb 25 09:27:50 2016
New Revision: 296028
URL: https://svnweb.freebsd.org/changeset/base/296028
Log:
hyperv: Wait 5 seconds for hyperv result, instead of 500ms
This addresses various devices (network, stoarge) attach failure.
Reported by: Hongxiong Xian <v-hoxian microsoft com>
Tested by: Hongxiong Xian <v-hoxian microsoft com>
MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D5435
Modified:
head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
head/sys/dev/hyperv/vmbus/hv_channel.c
head/sys/dev/hyperv/vmbus/hv_connection.c
Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Feb 25 08:17:31 2016 (r296027)
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Feb 25 09:27:50 2016 (r296028)
@@ -352,7 +352,7 @@ hv_rf_send_offload_request(struct hv_dev
goto cleanup;
}
- ret = sema_timedwait(&request->wait_sema, 500);
+ ret = sema_timedwait(&request->wait_sema, 5 * hz);
if (ret != 0) {
device_printf(dev, "hv send offload request timeout\n");
goto cleanup;
@@ -619,7 +619,7 @@ hv_rf_set_packet_filter(rndis_device *de
* us when the response has arrived. In the failure case,
* sema_timedwait() returns a non-zero status after waiting 5 seconds.
*/
- ret = sema_timedwait(&request->wait_sema, 500);
+ ret = sema_timedwait(&request->wait_sema, 5 * hz);
if (ret == 0) {
/* Response received, check status */
set_complete = &request->response_msg.msg.set_complete;
Modified: head/sys/dev/hyperv/vmbus/hv_channel.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_channel.c Thu Feb 25 08:17:31 2016 (r296027)
+++ head/sys/dev/hyperv/vmbus/hv_channel.c Thu Feb 25 09:27:50 2016 (r296028)
@@ -30,6 +30,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
@@ -194,7 +195,7 @@ hv_vmbus_channel_open(
if (ret != 0)
goto cleanup;
- ret = sema_timedwait(&open_info->wait_sema, 500); /* KYS 5 seconds */
+ ret = sema_timedwait(&open_info->wait_sema, 5 * hz); /* KYS 5 seconds */
if (ret) {
if(bootverbose)
@@ -439,7 +440,7 @@ hv_vmbus_channel_establish_gpadl(
}
}
- ret = sema_timedwait(&msg_info->wait_sema, 500); /* KYS 5 seconds*/
+ ret = sema_timedwait(&msg_info->wait_sema, 5 * hz); /* KYS 5 seconds*/
if (ret != 0)
goto cleanup;
@@ -499,7 +500,7 @@ hv_vmbus_channel_teardown_gpdal(
if (ret != 0)
goto cleanup;
- ret = sema_timedwait(&info->wait_sema, 500); /* KYS 5 seconds */
+ ret = sema_timedwait(&info->wait_sema, 5 * hz); /* KYS 5 seconds */
cleanup:
/*
Modified: head/sys/dev/hyperv/vmbus/hv_connection.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_connection.c Thu Feb 25 08:17:31 2016 (r296027)
+++ head/sys/dev/hyperv/vmbus/hv_connection.c Thu Feb 25 09:27:50 2016 (r296028)
@@ -27,6 +27,7 @@
*/
#include <sys/param.h>
+#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/systm.h>
#include <sys/lock.h>
@@ -121,7 +122,7 @@ hv_vmbus_negotiate_version(hv_vmbus_chan
/**
* Wait for the connection response
*/
- ret = sema_timedwait(&msg_info->wait_sema, 500); /* KYS 5 seconds */
+ ret = sema_timedwait(&msg_info->wait_sema, 5 * hz); /* KYS 5 seconds */
mtx_lock_spin(&hv_vmbus_g_connection.channel_msg_lock);
TAILQ_REMOVE(
More information about the svn-src-all
mailing list