Module Name:    src
Committed By:   pgoyette
Date:           Sun Jul 24 00:14:08 UTC 2016

Modified Files:
        src/sys/dev [pgoyette-localcount]: cgd.c

Log Message:
Remove cgd_release() - it's not needed now that getcgd_softc() provides
access to the device_t

Restore original cgdattach() - seems to be needed after all.

Remove some debug printf's from GETCGD_SOFTC() macro.


To generate a diff of this commit:
cvs rdiff -u -r1.108.2.11 -r1.108.2.12 src/sys/dev/cgd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/cgd.c
diff -u src/sys/dev/cgd.c:1.108.2.11 src/sys/dev/cgd.c:1.108.2.12
--- src/sys/dev/cgd.c:1.108.2.11	Sat Jul 23 03:20:37 2016
+++ src/sys/dev/cgd.c	Sun Jul 24 00:14:08 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: cgd.c,v 1.108.2.11 2016/07/23 03:20:37 pgoyette Exp $ */
+/* $NetBSD: cgd.c,v 1.108.2.12 2016/07/24 00:14:08 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.108.2.11 2016/07/23 03:20:37 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.108.2.12 2016/07/24 00:14:08 pgoyette Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -173,25 +173,12 @@ static void	hexprint(const char *, void 
 
 #define CGDUNIT(x)		DISKUNIT(x)
 #define GETCGD_SOFTC(_cs, x, _dv)			\
-	printf("%s: GETCGD_SOFTC\n", __func__);		\
-	if (!((_cs) = getcgd_softc(x, &_dv))) {		\
-		printf("%s: cs NULL\n", __func__);	\
+	if (((_cs) = getcgd_softc(x, &_dv)) == NULL) {	\
 		return ENXIO;				\
 	}
 
 /* The code */
 
-static void
-cgd_release(dev_t dev)
-{
-	int unit = CGDUNIT(dev);
-	device_t self;
-
-	self = device_lookup_acquire(&cgd_cd, unit);
-	if (self != NULL)
-		device_release(self);
-}
-
 static struct cgd_softc *
 getcgd_softc(dev_t dev, device_t *self)
 {
@@ -257,18 +244,12 @@ cgd_detach(device_t self, int flags)
 void
 cgdattach(int num)
 {
-/*
- * We don't need to do anything here - the config database is updated
- * in module initialization code.
-
 	int error;
 
 	error = config_cfattach_attach(cgd_cd.cd_name, &cgd_ca);
 	if (error != 0)
 		aprint_error("%s: unable to register cfattach\n",
 		    cgd_cd.cd_name);
- *
- */
 }
 
 static struct cgd_softc *
@@ -349,7 +330,7 @@ cgdclose(dev_t dev, int flags, int fmt, 
 		}
 	}
 	device_release(self);
-	return error;
+	return 0;
 }
 
 static void
@@ -374,14 +355,12 @@ cgdstrategy(struct buf *bp)
 		bp->b_error = EINVAL;
 		bp->b_resid = bp->b_bcount;
 		biodone(bp);
-		cgd_release(bp->b_dev);
 		device_release(self);
 		return;
 	}
 
 	/* XXXrcd: Should we test for (cs != NULL)? */
 	dk_strategy(&cs->sc_dksc, bp);
-	cgd_release(bp->b_dev);
 	device_release(self);
 	return;
 }
@@ -399,7 +378,6 @@ cgdsize(dev_t dev)
 	else
 		retval = dk_size(&cs->sc_dksc, dev);
 
-	cgd_release(dev);
 	device_release(self);
 	return retval;
 }
@@ -510,7 +488,6 @@ cgd_diskstart(device_t dev, struct buf *
 static void
 cgdiodone(struct buf *nbp)
 {
-	dev_t dev;
 	device_t self;
 	struct	buf *obp = nbp->b_private;
 	struct	cgd_softc *cs = getcgd_softc(obp->b_dev, &self);
@@ -555,13 +532,7 @@ cgdiodone(struct buf *nbp)
 	if (obp->b_error != 0)
 		obp->b_resid = obp->b_bcount;
 
-	/*
-	 * copy the dev_t, finish the disk operation, and release the
-	 * reference we're holding on to (from getcgd_softc() earlier)
-	 */
-	dev = obp->b_dev;
 	dk_done(dksc, obp);
-	cgd_release(dev);
 	device_release(self);
 
 	dk_start(dksc, NULL);
@@ -917,7 +888,6 @@ cgd_ioctl_get(dev_t dev, void *data, str
 		cgu->cgu_unit = unit;
 
 	if (cgu->cgu_unit < 0) {
-		cgd_release(dev);
 		device_release(self);
 		return EINVAL;	/* XXX: should this be ENXIO? */
 	}
@@ -938,7 +908,6 @@ cgd_ioctl_get(dev_t dev, void *data, str
 		cgu->cgu_mode = cs->sc_cdata.cf_mode;
 		cgu->cgu_keylen = cs->sc_cdata.cf_keylen;
 	}
-	cgd_release(dev);
 	device_release(self);
 	return 0;
 }
@@ -1175,6 +1144,7 @@ cgd_modcmd(modcmd_t cmd, void *arg)
 			config_cfdriver_detach(&cgd_cd);
 			aprint_error("%s: unable to attach %s devsw, "
 			    "error %d", __func__, cgd_cd.cd_name, error);
+			break;
 		}
 #endif
 		break;

Reply via email to