Page MenuHomeFreeBSD

D7312.id.diff
No OneTemporary

D7312.id.diff

Index: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c
===================================================================
--- head/sys/dev/hyperv/vmbus/hv_ring_buffer.c
+++ head/sys/dev/hyperv/vmbus/hv_ring_buffer.c
@@ -198,20 +198,24 @@
/**
* @brief Initialize the ring buffer.
*/
-int
+void
hv_vmbus_ring_buffer_init(hv_vmbus_ring_buffer_info *ring_info, void *buffer,
uint32_t buffer_len)
{
- memset(ring_info, 0, sizeof(hv_vmbus_ring_buffer_info));
-
ring_info->ring_buffer = buffer;
- ring_info->ring_buffer->br_rindex = 0;
- ring_info->ring_buffer->br_windex = 0;
-
ring_info->ring_data_size = buffer_len - sizeof(struct vmbus_bufring);
- mtx_init(&ring_info->ring_lock, "vmbus ring buffer", NULL, MTX_SPIN);
+}
- return (0);
+void
+vmbus_br_init(hv_vmbus_ring_buffer_info *ring_info)
+{
+ mtx_init(&ring_info->ring_lock, "vmbus_br", NULL, MTX_SPIN);
+}
+
+void
+vmbus_br_deinit(hv_vmbus_ring_buffer_info *ring_info)
+{
+ mtx_destroy(&ring_info->ring_lock);
}
/**
@@ -220,7 +224,7 @@
void
hv_ring_buffer_cleanup(hv_vmbus_ring_buffer_info *ring_info)
{
- mtx_destroy(&ring_info->ring_lock);
+ /* Do nothing */
}
/**
Index: head/sys/dev/hyperv/vmbus/vmbus_brvar.h
===================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_brvar.h
+++ head/sys/dev/hyperv/vmbus/vmbus_brvar.h
@@ -49,11 +49,13 @@
struct sysctl_oid *br_tree, hv_vmbus_ring_buffer_info *br,
const char *name);
-int hv_vmbus_ring_buffer_init(
+void vmbus_br_init(hv_vmbus_ring_buffer_info *ring_info);
+void vmbus_br_deinit(hv_vmbus_ring_buffer_info *ring_info);
+
+void hv_vmbus_ring_buffer_init(
hv_vmbus_ring_buffer_info *ring_info,
void *buffer,
uint32_t buffer_len);
-
void hv_ring_buffer_cleanup(
hv_vmbus_ring_buffer_info *ring_info);
Index: head/sys/dev/hyperv/vmbus/vmbus_chan.c
===================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_chan.c
+++ head/sys/dev/hyperv/vmbus/vmbus_chan.c
@@ -914,6 +914,8 @@
mtx_init(&chan->ch_subchan_lock, "vmbus subchan", NULL, MTX_DEF);
TAILQ_INIT(&chan->ch_subchans);
TASK_INIT(&chan->ch_detach_task, 0, vmbus_chan_detach_task, chan);
+ vmbus_br_init(&chan->ch_rxbr);
+ vmbus_br_init(&chan->ch_txbr);
return chan;
}
@@ -926,6 +928,8 @@
/* TODO: asset no longer on the vmbus channel list */
hyperv_dmamem_free(&chan->ch_monprm_dma, chan->ch_monprm);
mtx_destroy(&chan->ch_subchan_lock);
+ vmbus_br_deinit(&chan->ch_rxbr);
+ vmbus_br_deinit(&chan->ch_txbr);
free(chan, M_DEVBUF);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 11, 1:15 PM (9 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29522028
Default Alt Text
D7312.id.diff (2 KB)

Event Timeline