svn commit: r307012 - in head/sys/dev/hyperv: include vmbus
Sepherosa Ziehau
sephe at FreeBSD.org
Tue Oct 11 02:43:24 UTC 2016
Author: sephe
Date: Tue Oct 11 02:43:23 2016
New Revision: 307012
URL: https://svnweb.freebsd.org/changeset/base/307012
Log:
hyperv/vmbus: Allow driver to inject synchronous task into channel taskq.
MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D8208
Modified:
head/sys/dev/hyperv/include/vmbus.h
head/sys/dev/hyperv/vmbus/vmbus_chan.c
Modified: head/sys/dev/hyperv/include/vmbus.h
==============================================================================
--- head/sys/dev/hyperv/include/vmbus.h Tue Oct 11 02:25:59 2016 (r307011)
+++ head/sys/dev/hyperv/include/vmbus.h Tue Oct 11 02:43:23 2016 (r307012)
@@ -117,6 +117,7 @@ struct vmbus_chan_br {
struct vmbus_channel;
struct hyperv_guid;
+struct task;
typedef void (*vmbus_chan_callback_t)(struct vmbus_channel *, void *);
@@ -134,6 +135,8 @@ int vmbus_chan_open_br(struct vmbus_cha
int udlen, vmbus_chan_callback_t cb, void *cbarg);
void vmbus_chan_close(struct vmbus_channel *chan);
void vmbus_chan_intr_drain(struct vmbus_channel *chan);
+void vmbus_chan_run_task(struct vmbus_channel *chan,
+ struct task *task);
int vmbus_chan_gpadl_connect(struct vmbus_channel *chan,
bus_addr_t paddr, int size, uint32_t *gpadl);
Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_chan.c Tue Oct 11 02:25:59 2016 (r307011)
+++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Tue Oct 11 02:43:23 2016 (r307012)
@@ -1713,3 +1713,11 @@ vmbus_chan_rx_empty(const struct vmbus_c
return (vmbus_rxbr_empty(&chan->ch_rxbr));
}
+
+void
+vmbus_chan_run_task(struct vmbus_channel *chan, struct task *task)
+{
+
+ taskqueue_enqueue(chan->ch_tq, task);
+ taskqueue_drain(chan->ch_tq, task);
+}
More information about the svn-src-all
mailing list