diff options
| author | Scott Mitchell <rsm@FreeBSD.org> | 2004-12-06 23:17:04 +0000 |
|---|---|---|
| committer | Scott Mitchell <rsm@FreeBSD.org> | 2004-12-06 23:17:04 +0000 |
| commit | fb805ea785ddb712bcce2a6b2ae91ece90a3ecfa (patch) | |
| tree | 17073bbc380e295bc9f943fffd981ad3fefb9a15 /sys/dev/advansys/adwcam.c | |
| parent | 2f6a1b474498c3fa22389eace4ac99e17f4257ea (diff) | |
Notes
Diffstat (limited to 'sys/dev/advansys/adwcam.c')
| -rw-r--r-- | sys/dev/advansys/adwcam.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/dev/advansys/adwcam.c b/sys/dev/advansys/adwcam.c index f4e7f4cfe91f..400c0fca5271 100644 --- a/sys/dev/advansys/adwcam.c +++ b/sys/dev/advansys/adwcam.c @@ -872,6 +872,26 @@ adw_free(struct adw_softc *adw) case 0: break; } + + if (adw->regs != NULL) + bus_release_resource(adw->device, + adw->regs_res_type, + adw->regs_res_id, + adw->regs); + + if (adw->irq != NULL) + bus_release_resource(adw->device, + adw->irq_res_type, + 0, adw->irq); + + if (adw->sim != NULL) { + if (adw->path != NULL) { + xpt_async(AC_LOST_DEVICE, adw->path, NULL); + xpt_free_path(adw->path); + } + xpt_bus_deregister(cam_sim_path(adw->sim)); + cam_sim_free(adw->sim, /*free_devq*/TRUE); + } free(adw->name, M_DEVBUF); free(adw, M_DEVBUF); } |
