Fix the ARM64 build, include the necessary <sys/mutex.h> header.

While here, call device_delete_children() to detach and dealloc all the
existent children and handle the child's detach errors properly.

Reported by:	jenkins, hselasky, ian
Sponsored by:	Rubicon Communications, LLC (Netgate)
This commit is contained in:
loos 2019-12-06 20:05:08 +00:00
parent 13ed6cbe9d
commit bca431a277

View File

@ -29,9 +29,9 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/mutex.h>
#include <sys/rman.h>
#include <machine/bus.h>
@ -228,9 +228,11 @@ a37x0_spi_attach(device_t dev)
static int
a37x0_spi_detach(device_t dev)
{
int err;
struct a37x0_spi_softc *sc;
bus_generic_detach(dev);
if ((err = device_delete_children(dev)) != 0)
return (err);
sc = device_get_softc(dev);
mtx_destroy(&sc->sc_mtx);
if (sc->sc_intrhand)