aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/flash/flexspi/flex_spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/flash/flexspi/flex_spi.c')
-rw-r--r--sys/dev/flash/flexspi/flex_spi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/flash/flexspi/flex_spi.c b/sys/dev/flash/flexspi/flex_spi.c
index fc85919fc2f8..fea3134730f1 100644
--- a/sys/dev/flash/flexspi/flex_spi.c
+++ b/sys/dev/flash/flexspi/flex_spi.c
@@ -824,6 +824,9 @@ flex_spi_detach(device_t dev)
sc = device_get_softc(dev);
err = 0;
+ if (!device_is_attached(dev))
+ goto free_resources;
+
mtx_lock(&sc->disk_mtx);
if (sc->taskstate == TSTATE_RUNNING) {
sc->taskstate = TSTATE_STOPPING;
@@ -848,7 +851,7 @@ flex_spi_detach(device_t dev)
}
/* Disable hardware. */
-
+free_resources:
/* Release memory resource. */
if (sc->mem_res != NULL)
bus_release_resource(dev, SYS_RES_MEMORY,