From e0f3ccfd977e6d17e5616d505b0d39d3e65715db Mon Sep 17 00:00:00 2001 From: brian Date: Fri, 19 Aug 2005 18:38:55 +0000 Subject: [PATCH] MFC: Make ichsmb unloadable Approved by: re (kensmith) Sponsored by: Sophos/ActiveState --- sys/dev/ichsmb/ichsmb.c | 10 +++------- sys/dev/ichsmb/ichsmb_pci.c | 1 - 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/sys/dev/ichsmb/ichsmb.c b/sys/dev/ichsmb/ichsmb.c index 2cfb564f2a5..9361c7ee88e 100644 --- a/sys/dev/ichsmb/ichsmb.c +++ b/sys/dev/ichsmb/ichsmb.c @@ -108,10 +108,9 @@ ichsmb_attach(device_t dev) { const sc_p sc = device_get_softc(dev); int error; - device_t smb; /* Add child: an instance of the "smbus" device */ - if ((smb = device_add_child(dev, DRIVER_SMBUS, -1)) == NULL) { + if ((sc->smb = device_add_child(dev, DRIVER_SMBUS, -1)) == NULL) { log(LOG_ERR, "%s: no \"%s\" child found\n", device_get_nameunit(dev), DRIVER_SMBUS); return (ENXIO); @@ -677,15 +676,12 @@ ichsmb_release_resources(sc_p sc) int ichsmb_detach(device_t dev) { -#if 0 const sc_p sc = device_get_softc(dev); + + mtx_destroy(&sc->mutex); bus_generic_detach(dev); device_delete_child(dev, sc->smb); ichsmb_release_resources(sc); return 0; -#else - /*smbus drivers don't handle detach child properly*/ - return EBUSY; -#endif } diff --git a/sys/dev/ichsmb/ichsmb_pci.c b/sys/dev/ichsmb/ichsmb_pci.c index 41f7c292a85..54c3b97cdf9 100644 --- a/sys/dev/ichsmb/ichsmb_pci.c +++ b/sys/dev/ichsmb/ichsmb_pci.c @@ -233,4 +233,3 @@ ichsmb_pci_attach(device_t dev) MODULE_DEPEND(ichsmb, pci, 1, 1, 1); MODULE_DEPEND(ichsmb, smbus, SMBUS_MINVER, SMBUS_PREFVER, SMBUS_MAXVER); MODULE_VERSION(ichsmb, 1); -; -- 2.45.2