opnsense-src/sys/dev/etherswitch
Adrian Chadd c8e97aa6ac e6000sw: fix bus ordering; don't panic if miibus devices are destroyed
Unloading the e6000sw driver with a "fixed" ixgbe (which is doing
MDIO transfers faster than 8ms per) has exposed another fun race
condition - the MII busses were being torn down before the etherswitch
device.

* Modify e6000sw_miiforphy() to return NULL if the mii bus device
  isn't setup, which stops the panic

* Change the module order so the e6000sw module is detached first,
  before the miibus entries and attached PHYs are destroyed.
  This ensures that the miibus entries aren't destroyed outside
  of the driver lock, and e6000sw_tick() doesn't try dereferencing
  dead miibus device_t's.

Differential Revision: https://reviews.freebsd.org/D50294
Reviewed by:	jhb
2025-05-15 19:34:26 -07:00
..
ar40xx ar40xx: fix to compile/run under the new ifnet rules 2025-02-15 12:43:42 -08:00
arswitch etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
e6000sw e6000sw: fix bus ordering; don't panic if miibus devices are destroyed 2025-05-15 19:34:26 -07:00
felix Check for errors from bus_generic_detach in various drivers 2025-01-02 13:23:41 -05:00
infineon etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
ip17x etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
micrel etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
mtkswitch etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
rtl8366 etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
ukswitch etherswitch: Cleanup detach and delete of child devices during detach 2025-01-02 13:24:46 -05:00
etherswitch.c newbus: replace -1 in BUS_ADD_CHILD(...-1) with DEVICE_UNIT_ANY 2024-07-24 22:23:02 -06:00
etherswitch.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
etherswitch_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
miiproxy.c miiproxy: add missing dependency on mdio 2025-04-27 11:02:30 -07:00
miiproxy.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00