Page MenuHomeFreeBSD

D4597.id11348.diff
No OneTemporary

D4597.id11348.diff

Index: sys/dev/hyperv/include/hyperv.h
===================================================================
--- sys/dev/hyperv/include/hyperv.h
+++ sys/dev/hyperv/include/hyperv.h
@@ -754,7 +754,6 @@
hv_vmbus_ring_buffer_info inbound;
struct mtx inbound_lock;
- hv_vmbus_handle control_work_queue;
hv_vmbus_pfn_channel_callback on_channel_callback;
void* channel_callback_context;
Index: sys/dev/hyperv/vmbus/hv_channel_mgmt.c
===================================================================
--- sys/dev/hyperv/vmbus/hv_channel_mgmt.c
+++ sys/dev/hyperv/vmbus/hv_channel_mgmt.c
@@ -42,7 +42,6 @@
static void vmbus_channel_on_gpadl_torndown(hv_vmbus_channel_msg_header* hdr);
static void vmbus_channel_on_offers_delivered(hv_vmbus_channel_msg_header* hdr);
static void vmbus_channel_on_version_response(hv_vmbus_channel_msg_header* hdr);
-static void vmbus_channel_process_offer(void *context);
struct hv_vmbus_channel*
vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary);
@@ -212,15 +211,6 @@
return (taskqueue_enqueue(wq->queue, &w->work));
}
-/**
- * @brief Rescind the offer by initiating a device removal
- */
-static void
-vmbus_channel_process_rescind_offer(void *context)
-{
- hv_vmbus_channel* channel = (hv_vmbus_channel*) context;
- hv_vmbus_child_device_unregister(channel->device);
-}
/**
* @brief Allocate and initialize a vmbus channel object
@@ -243,14 +233,6 @@
TAILQ_INIT(&channel->sc_list_anchor);
- channel->control_work_queue = hv_work_queue_create("control");
-
- if (channel->control_work_queue == NULL) {
- mtx_destroy(&channel->inbound_lock);
- free(channel, M_DEVBUF);
- return (NULL);
- }
-
return (channel);
}
@@ -261,7 +243,6 @@
ReleaseVmbusChannel(void *context)
{
hv_vmbus_channel* channel = (hv_vmbus_channel*) context;
- hv_work_queue_close(channel->control_work_queue);
free(channel, M_DEVBUF);
}
@@ -287,14 +268,12 @@
* associated with this offer
*/
static void
-vmbus_channel_process_offer(void *context)
+vmbus_channel_process_offer(hv_vmbus_channel *new_channel)
{
- hv_vmbus_channel* new_channel;
boolean_t f_new;
hv_vmbus_channel* channel;
int ret;
- new_channel = (hv_vmbus_channel*) context;
f_new = TRUE;
channel = NULL;
@@ -527,11 +506,7 @@
new_channel->monitor_group = (uint8_t) offer->monitor_id / 32;
new_channel->monitor_bit = (uint8_t) offer->monitor_id % 32;
- /* TODO: Make sure the offer comes from our parent partition */
- hv_queue_work_item(
- new_channel->control_work_queue,
- vmbus_channel_process_offer,
- new_channel);
+ vmbus_channel_process_offer(new_channel);
}
/**
@@ -552,8 +527,7 @@
if (channel == NULL)
return;
- hv_queue_work_item(channel->control_work_queue,
- vmbus_channel_process_rescind_offer, channel);
+ hv_vmbus_child_device_unregister(channel->device);
}
/**

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 20, 10:42 AM (9 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25721635
Default Alt Text
D4597.id11348.diff (2 KB)

Event Timeline