Page MenuHomeFreeBSD

D5450.diff
No OneTemporary

D5450.diff

Index: head/sys/dev/hyperv/include/hyperv.h
===================================================================
--- head/sys/dev/hyperv/include/hyperv.h
+++ head/sys/dev/hyperv/include/hyperv.h
@@ -753,8 +753,6 @@
*/
hv_vmbus_ring_buffer_info inbound;
- struct mtx inbound_lock;
-
struct taskqueue * rxq;
struct task channel_task;
hv_vmbus_pfn_channel_callback on_channel_callback;
Index: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c
@@ -720,9 +720,7 @@
netvsc_dev *net_dev = sc->net_dev;;
/* Stop outbound traffic ie sends and receives completions */
- mtx_lock(&device->channel->inbound_lock);
net_dev->destroy = TRUE;
- mtx_unlock(&device->channel->inbound_lock);
/* Wait for all send completions */
while (net_dev->num_outstanding_sends) {
Index: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
===================================================================
--- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
+++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
@@ -1153,9 +1153,7 @@
struct hv_sgl_node *sgl_node = NULL;
int j = 0;
- mtx_lock(&hv_device->channel->inbound_lock);
sc->hs_destroy = TRUE;
- mtx_unlock(&hv_device->channel->inbound_lock);
/*
* At this point, all outbound traffic should be disabled. We
Index: head/sys/dev/hyperv/vmbus/hv_channel.c
===================================================================
--- head/sys/dev/hyperv/vmbus/hv_channel.c
+++ head/sys/dev/hyperv/vmbus/hv_channel.c
@@ -537,13 +537,7 @@
*/
channel->rxq = NULL;
taskqueue_drain(rxq, &channel->channel_task);
- /*
- * Grab the lock to prevent race condition when a packet received
- * and unloading driver is in the process.
- */
- mtx_lock(&channel->inbound_lock);
channel->on_channel_callback = NULL;
- mtx_unlock(&channel->inbound_lock);
/**
* Send a closing message
@@ -920,12 +914,6 @@
* callback to NULL. This closes the window.
*/
- /*
- * Disable the lock due to newly added WITNESS check in r277723.
- * Will seek other way to avoid race condition.
- * -- whu
- */
- // mtx_lock(&channel->inbound_lock);
if (channel->on_channel_callback != NULL) {
arg = channel->channel_callback_context;
is_batched_reading = channel->batched_reading;
@@ -952,5 +940,4 @@
bytes_to_read = 0;
} while (is_batched_reading && (bytes_to_read != 0));
}
- // mtx_unlock(&channel->inbound_lock);
}
Index: head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
===================================================================
--- head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
+++ head/sys/dev/hyperv/vmbus/hv_channel_mgmt.c
@@ -140,9 +140,7 @@
M_DEVBUF,
M_WAITOK | M_ZERO);
- mtx_init(&channel->inbound_lock, "channel inbound", NULL, MTX_DEF);
mtx_init(&channel->sc_lock, "vmbus multi channel", NULL, MTX_DEF);
-
TAILQ_INIT(&channel->sc_list_anchor);
return (channel);
@@ -155,8 +153,6 @@
hv_vmbus_free_vmbus_channel(hv_vmbus_channel* channel)
{
mtx_destroy(&channel->sc_lock);
- mtx_destroy(&channel->inbound_lock);
-
free(channel, M_DEVBUF);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 18, 1:55 AM (6 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29868523
Default Alt Text
D5450.diff (3 KB)

Event Timeline