diff options
author | mav <mav@FreeBSD.org> | 2013-12-25 12:41:53 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2013-12-25 12:41:53 +0000 |
commit | 440a3e9f89b6a8cdda0c5a23484d45b61972bc0a (patch) | |
tree | 64a0b738dd1328d10981588bacdb695825e96f44 /sys/dev/ahci | |
parent | d3ac080f01934ebbd9bd697c2dfa1d2f28860d57 (diff) | |
download | FreeBSD-src-440a3e9f89b6a8cdda0c5a23484d45b61972bc0a.zip FreeBSD-src-440a3e9f89b6a8cdda0c5a23484d45b61972bc0a.tar.gz |
MFC r259222:
Destroy mtx lock when failed to allocate memory during attach.
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
Diffstat (limited to 'sys/dev/ahci')
-rw-r--r-- | sys/dev/ahci/ahciem.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ahci/ahciem.c b/sys/dev/ahci/ahciem.c index d96f044..8785a78 100644 --- a/sys/dev/ahci/ahciem.c +++ b/sys/dev/ahci/ahciem.c @@ -85,8 +85,10 @@ ahci_em_attach(device_t dev) mtx_init(&enc->mtx, "AHCI enclosure lock", NULL, MTX_DEF); rid = 0; if (!(enc->r_memc = bus_alloc_resource_any(dev, SYS_RES_MEMORY, - &rid, RF_ACTIVE))) + &rid, RF_ACTIVE))) { + mtx_destroy(&enc->mtx); return (ENXIO); + } enc->capsem = ATA_INL(enc->r_memc, 0); rid = 1; if (!(enc->r_memt = bus_alloc_resource_any(dev, SYS_RES_MEMORY, |