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