Index: sys/kstat.h =================================================================== RCS file: /cvs/src/sys/sys/kstat.h,v retrieving revision 1.1 diff -u -p -r1.1 kstat.h --- sys/kstat.h 6 Jul 2020 03:56:51 -0000 1.1 +++ sys/kstat.h 31 Jan 2022 03:13:44 -0000 @@ -169,6 +169,7 @@ void kstat_set_cpu(struct kstat *, str int kstat_read_nop(struct kstat *); void kstat_install(struct kstat *); +void kstat_remove(struct kstat *); void kstat_destroy(struct kstat *); /* Index: dev/kstat.c =================================================================== RCS file: /cvs/src/sys/dev/kstat.c,v retrieving revision 1.1 diff -u -p -r1.1 kstat.c --- dev/kstat.c 6 Jul 2020 03:56:51 -0000 1.1 +++ dev/kstat.c 31 Jan 2022 03:13:44 -0000 @@ -627,6 +627,18 @@ kstat_install(struct kstat *ks) } void +kstat_remove(struct kstat *ks) +{ + rw_enter_write(&kstat_lock); + KASSERTMSG(ks->ks_state == KSTAT_S_INSTALLED, + "kstat %p %s:%u:%s:%u is not installed", ks, + ks->ks_provider, ks->ks_instance, ks->ks_name, ks->ks_unit); + + ks->ks_state = KSTAT_S_CREATED; + rw_exit_write(&kstat_lock); +} + +void kstat_destroy(struct kstat *ks) { rw_enter_write(&kstat_lock); Index: dev/pci/if_msk.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_msk.c,v retrieving revision 1.141 diff -u -p -r1.141 if_msk.c --- dev/pci/if_msk.c 15 Jan 2022 04:10:01 -0000 1.141 +++ dev/pci/if_msk.c 31 Jan 2022 03:13:44 -0000 @@ -2408,6 +2419,8 @@ msk_kstat_detach(struct sk_if_softc *sc_ return; sc_if->sk_kstat = NULL; + + kstat_remove(mks->ks); kvs = mks->ks->ks_data; kvslen = mks->ks->ks_datalen;