Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Sep 2023 10:53:05 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 273418] [panic] Repeating kernel panic on open(/dev/console)
Message-ID:  <bug-273418-227-3BgT25zFCQ@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-273418-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-273418-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D273418

--- Comment #33 from Konstantin Belousov <kib@FreeBSD.org> ---
Yes, this is the usual problem with dev_clone handlers.

commit f041428f9d8aea9fe5a33c5c91ac31074d652672
Author: Konstantin Belousov <kib@FreeBSD.org>
Date:   Thu Sep 21 13:47:14 2023 +0300

    tun/tap: correct ref count on cloned cdevs

    PR:     273418

diff --git a/sys/net/if_tuntap.c b/sys/net/if_tuntap.c
index f4dbf685fba6..a01bc11aa64c 100644
--- a/sys/net/if_tuntap.c
+++ b/sys/net/if_tuntap.c
@@ -548,6 +548,7 @@ tun_clone_create(struct if_clone *ifc, char *name, size=
_t
len,
        if (i !=3D 0)
                i =3D tun_create_device(drv, unit, NULL, &dev, name);
        if (i =3D=3D 0) {
+               dev_ref(dev);
                tuncreate(dev);
                struct tuntap_softc *tp =3D dev->si_drv1;
                *ifpp =3D tp->tun_ifp;
@@ -611,8 +612,10 @@ tunclone(void *arg, struct ucred *cred, char *name, int
namelen,

                i =3D tun_create_device(drv, u, cred, dev, name);
        }
-       if (i =3D=3D 0)
+       if (i =3D=3D 0) {
+               dev_ref(*dev);
                if_clone_create(name, namelen, NULL);
+       }
 out:
        CURVNET_RESTORE();
 }

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-273418-227-3BgT25zFCQ>