Date: Tue, 07 Apr 2026 20:26:44 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 294312] Page fault with vmx0 interface (devctl disable / enable) Message-ID: <bug-294312-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294312 Bug ID: 294312 Summary: Page fault with vmx0 interface (devctl disable / enable) Product: Base System Version: 14.3-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: mibelanger@qnx.com Created attachment 269469 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=269469&action=edit Screen shot of crash Running in vmware. Use a vmxnet3 device. FreeBSD will create an vmx0 interface. A page fault can be reproduced by disabling and enabling the device. i.e. # devctl disable vmx0 # devctl enable vmx0 The problem is that the admin status handler is being invoked by netlink. When the interface first comes up, there are no listeners so rtnl_handle_ifevent does not do very much. I believe a listener will be added by invoking ifconfig, or maybe it gets invoked when devctl disable is called. When the devctl enable runs, the code in rtnl_handle_ifevent will make it past the test for listeners and calls dump_iface. This eventually gets to vmxnet3_update_admin_status and will crash as sc->vmx_ds is NULL: static void vmxnet3_update_admin_status(if_ctx_t ctx) { struct vmxnet3_softc *sc; sc = iflib_get_softc(ctx); if (sc->vmx_ds->event != 0)<<<<<here vmxnet3_evintr(sc); vmxnet3_refresh_host_stats(sc); } This may impact other iflib drivers depending on their update_admin_status iflib callbacks. -- You are receiving this mail because: You are the assignee for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-294312-227>
