diff --git a/sys/dev/pci/vio9p.c b/sys/dev/pci/vio9p.c index 17189a4988e..6994cf9af0c 100644 --- a/sys/dev/pci/vio9p.c +++ b/sys/dev/pci/vio9p.c @@ -490,6 +490,7 @@ vio9p_attach(device_t parent, device_t self, void *aux) struct virtio_softc *vsc = device_private(parent); uint64_t features; int error; + const struct sysctlnode *node; if (virtio_child(vsc) != NULL) { aprint_normal(": child already attached for %s; " @@ -553,6 +554,19 @@ vio9p_attach(device_t parent, device_t self, void *aux) vio9p_read_config(sc); aprint_normal_dev(self, "tagged as %s\n", sc->sc_tag); + sysctl_createv(NULL, 0, NULL, &node, 0, CTLTYPE_NODE, + "vio9p", SYSCTL_DESCR("VirtIO 9p toplevel"), + NULL, 0, NULL, 0, + CTL_HW, CTL_CREATE, CTL_EOL); + sysctl_createv(NULL, 0, &node, &node, 0, CTLTYPE_NODE, + device_xname(self), SYSCTL_DESCR("VirtIO 9p device"), + NULL, 0, NULL, 0, + CTL_CREATE, CTL_EOL); + sysctl_createv(NULL, 0, &node, NULL, 0, CTLTYPE_STRING, + "tag", SYSCTL_DESCR("VirtIO 9p tag value"), + NULL, 0, sc->sc_tag, 0, + CTL_CREATE, CTL_EOL); + error = virtio_child_attach_finish(vsc, sc->sc_vq, __arraycount(sc->sc_vq), NULL, VIRTIO_F_INTR_MPSAFE | VIRTIO_F_INTR_SOFTINT);