Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 May 2019 00:55:46 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r348295 - head/sys/dev/virtio/random
Message-ID:  <201905270055.x4R0tklp073402@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Mon May 27 00:55:46 2019
New Revision: 348295
URL: https://svnweb.freebsd.org/changeset/base/348295

Log:
  virtio_random(4): Remove unneeded reference to device
  
  The device_t always references the softc, so we can pass the device and
  obtain the softc instead of the other way around.

Modified:
  head/sys/dev/virtio/random/virtio_random.c

Modified: head/sys/dev/virtio/random/virtio_random.c
==============================================================================
--- head/sys/dev/virtio/random/virtio_random.c	Mon May 27 00:51:27 2019	(r348294)
+++ head/sys/dev/virtio/random/virtio_random.c	Mon May 27 00:55:46 2019	(r348295)
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
 #include <dev/virtio/virtqueue.h>
 
 struct vtrnd_softc {
-	device_t		 vtrnd_dev;
 	uint64_t		 vtrnd_features;
 	struct callout		 vtrnd_callout;
 	struct virtqueue	*vtrnd_vq;
@@ -58,8 +57,8 @@ static int	vtrnd_probe(device_t);
 static int	vtrnd_attach(device_t);
 static int	vtrnd_detach(device_t);
 
-static void	vtrnd_negotiate_features(struct vtrnd_softc *);
-static int	vtrnd_alloc_virtqueue(struct vtrnd_softc *);
+static void	vtrnd_negotiate_features(device_t);
+static int	vtrnd_alloc_virtqueue(device_t);
 static void	vtrnd_harvest(struct vtrnd_softc *);
 static void	vtrnd_timer(void *);
 
@@ -129,14 +128,13 @@ vtrnd_attach(device_t dev)
 	int error;
 
 	sc = device_get_softc(dev);
-	sc->vtrnd_dev = dev;
 
 	callout_init(&sc->vtrnd_callout, 1);
 
 	virtio_set_feature_desc(dev, vtrnd_feature_desc);
-	vtrnd_negotiate_features(sc);
+	vtrnd_negotiate_features(dev);
 
-	error = vtrnd_alloc_virtqueue(sc);
+	error = vtrnd_alloc_virtqueue(dev);
 	if (error) {
 		device_printf(dev, "cannot allocate virtqueue\n");
 		goto fail;
@@ -164,24 +162,21 @@ vtrnd_detach(device_t dev)
 }
 
 static void
-vtrnd_negotiate_features(struct vtrnd_softc *sc)
+vtrnd_negotiate_features(device_t dev)
 {
-	device_t dev;
-	uint64_t features;
+	struct vtrnd_softc *sc;
 
-	dev = sc->vtrnd_dev;
-	features = VTRND_FEATURES;
-
-	sc->vtrnd_features = virtio_negotiate_features(dev, features);
+	sc = device_get_softc(dev);
+	sc->vtrnd_features = virtio_negotiate_features(dev, VTRND_FEATURES);
 }
 
 static int
-vtrnd_alloc_virtqueue(struct vtrnd_softc *sc)
+vtrnd_alloc_virtqueue(device_t dev)
 {
-	device_t dev;
+	struct vtrnd_softc *sc;
 	struct vq_alloc_info vq_info;
 
-	dev = sc->vtrnd_dev;
+	sc = device_get_softc(dev);
 
 	VQ_ALLOC_INFO_INIT(&vq_info, 0, NULL, sc, &sc->vtrnd_vq,
 	    "%s request", device_get_nameunit(dev));



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905270055.x4R0tklp073402>