pass the size of the softc to free.
authordlg <dlg@openbsd.org>
Mon, 19 Jan 2015 06:27:57 +0000 (06:27 +0000)
committerdlg <dlg@openbsd.org>
Mon, 19 Jan 2015 06:27:57 +0000 (06:27 +0000)
ok deraadt@

sys/kern/subr_autoconf.c

index 00b988e..7bb3ace 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: subr_autoconf.c,v 1.80 2014/09/18 18:54:29 kettenis Exp $     */
+/*     $OpenBSD: subr_autoconf.c,v 1.81 2015/01/19 06:27:57 dlg Exp $  */
 /*     $NetBSD: subr_autoconf.c,v 1.21 1996/04/04 06:06:18 cgd Exp $   */
 
 /*
@@ -935,8 +935,10 @@ device_ref(struct device *dv)
 void
 device_unref(struct device *dv)
 {
+       struct cfattach *ca = dv->dv_cfdata->cf_attach;
+
        dv->dv_ref--;
        if (dv->dv_ref == 0) {
-               free(dv, M_DEVBUF, 0);
+               free(dv, M_DEVBUF, ca->ca_devsize);
        }
 }