svn commit: r303824 - head/sys/dev/hyperv/utilities

Sepherosa Ziehau sephe at FreeBSD.org
Mon Aug 8 06:18:56 UTC 2016


Author: sephe
Date: Mon Aug  8 06:18:54 2016
New Revision: 303824
URL: https://svnweb.freebsd.org/changeset/base/303824

Log:
  hyperv/ic: Pass the channel callback to hv_util_attach()
  
  The saved channel callback in util softc is actually never used.
  
  MFC after:	1 week
  Sponsored by:	Microsoft
  Differential Revision:	https://reviews.freebsd.org/D7424

Modified:
  head/sys/dev/hyperv/utilities/hv_heartbeat.c
  head/sys/dev/hyperv/utilities/hv_kvp.c
  head/sys/dev/hyperv/utilities/hv_shutdown.c
  head/sys/dev/hyperv/utilities/hv_timesync.c
  head/sys/dev/hyperv/utilities/hv_util.c
  head/sys/dev/hyperv/utilities/hv_util.h

Modified: head/sys/dev/hyperv/utilities/hv_heartbeat.c
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_heartbeat.c	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_heartbeat.c	Mon Aug  8 06:18:54 2016	(r303824)
@@ -109,11 +109,7 @@ hv_heartbeat_probe(device_t dev)
 static int
 hv_heartbeat_attach(device_t dev)
 {
-	hv_util_sc *softc = (hv_util_sc*)device_get_softc(dev);
-
-	softc->callback = hv_heartbeat_cb;
-
-	return hv_util_attach(dev);
+	return hv_util_attach(dev, hv_heartbeat_cb);
 }
 
 static device_method_t heartbeat_methods[] = {

Modified: head/sys/dev/hyperv/utilities/hv_kvp.c
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_kvp.c	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_kvp.c	Mon Aug  8 06:18:54 2016	(r303824)
@@ -892,7 +892,6 @@ hv_kvp_attach(device_t dev)
 
 	hv_kvp_sc *sc = (hv_kvp_sc*)device_get_softc(dev);
 
-	sc->util_sc.callback = hv_kvp_callback;
 	sc->dev = dev;
 	sema_init(&sc->dev_sema, 0, "hv_kvp device semaphore");
 	mtx_init(&sc->pending_mutex, "hv-kvp pending mutex",
@@ -920,7 +919,7 @@ hv_kvp_attach(device_t dev)
 		return (error);
 	sc->hv_kvp_dev->si_drv1 = sc;
 
-	return hv_util_attach(dev);
+	return hv_util_attach(dev, hv_kvp_callback);
 }
 
 static int

Modified: head/sys/dev/hyperv/utilities/hv_shutdown.c
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_shutdown.c	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_shutdown.c	Mon Aug  8 06:18:54 2016	(r303824)
@@ -131,11 +131,7 @@ hv_shutdown_probe(device_t dev)
 static int
 hv_shutdown_attach(device_t dev)
 {
-	hv_util_sc *softc = (hv_util_sc*)device_get_softc(dev);
-
-	softc->callback = hv_shutdown_cb;
-
-	return hv_util_attach(dev);
+	return hv_util_attach(dev, hv_shutdown_cb);
 }
 
 static device_method_t shutdown_methods[] = {

Modified: head/sys/dev/hyperv/utilities/hv_timesync.c
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_timesync.c	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_timesync.c	Mon Aug  8 06:18:54 2016	(r303824)
@@ -189,18 +189,16 @@ hv_timesync_attach(device_t dev)
 {
 	hv_timesync_sc *softc = device_get_softc(dev);
 
-	softc->util_sc.callback = hv_timesync_cb;
 	TASK_INIT(&softc->task, 1, hv_set_host_time, softc);
-
-	return hv_util_attach(dev);
+	return hv_util_attach(dev, hv_timesync_cb);
 }
 
 static int
 hv_timesync_detach(device_t dev)
 {
 	hv_timesync_sc *softc = device_get_softc(dev);
-	taskqueue_drain(taskqueue_thread, &softc->task);
 
+	taskqueue_drain(taskqueue_thread, &softc->task);
 	return hv_util_detach(dev);
 }
 

Modified: head/sys/dev/hyperv/utilities/hv_util.c
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_util.c	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_util.c	Mon Aug  8 06:18:54 2016	(r303824)
@@ -75,7 +75,7 @@ hv_negotiate_version(struct hv_vmbus_icm
 }
 
 int
-hv_util_attach(device_t dev)
+hv_util_attach(device_t dev, vmbus_chan_callback_t cb)
 {
 	struct hv_util_sc *sc = device_get_softc(dev);
 	struct vmbus_channel *chan = vmbus_get_channel(dev);
@@ -95,7 +95,7 @@ hv_util_attach(device_t dev)
 	vmbus_chan_set_readbatch(chan, false);
 
 	error = vmbus_chan_open(chan, VMBUS_IC_BRSIZE, VMBUS_IC_BRSIZE, NULL, 0,
-	    sc->callback, sc);
+	    cb, sc);
 	if (error) {
 		free(sc->receive_buffer, M_DEVBUF);
 		return (error);

Modified: head/sys/dev/hyperv/utilities/hv_util.h
==============================================================================
--- head/sys/dev/hyperv/utilities/hv_util.h	Mon Aug  8 06:11:28 2016	(r303823)
+++ head/sys/dev/hyperv/utilities/hv_util.h	Mon Aug  8 06:18:54 2016	(r303824)
@@ -31,22 +31,20 @@
 #ifndef _HVUTIL_H_
 #define _HVUTIL_H_
 
+#include <dev/hyperv/include/vmbus.h>
+
 /**
  * hv_util related structures
  *
  */
 typedef struct hv_util_sc {
-	/*
-	 * function to process Hyper-V messages
-	 */
-	void (*callback)(struct vmbus_channel *, void *);
 	uint8_t			*receive_buffer;
 	int			ic_buflen;
 } hv_util_sc;
 
 void hv_negotiate_version(struct hv_vmbus_icmsg_hdr *icmsghdrp, uint8_t *buf);
 
-int hv_util_attach(device_t dev);
+int hv_util_attach(device_t dev, vmbus_chan_callback_t cb);
 int hv_util_detach(device_t dev);
 
 #endif


More information about the svn-src-head mailing list