Fix memory leak in error path.
Found by llvm/scan-build.
Also port (sc->sc_ports[port]) was not assigned, so "goto freeport;"
seems wrong.
Index: ahci.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/ahci.c,v
retrieving revision 1.22
diff -u -p -r1.22 ahci.c
--- ahci.c 27 Aug 2015 18:47:29 -0000 1.22
+++ ahci.c 26 Sep 2015 09:29:57 -0000
@@ -460,7 +460,8 @@ ahci_port_alloc(struct ahci_softc *sc, u
if (ap->ap_err_scratch == NULL) {
printf("%s: unable to allocate DMA scratch buf for port %d\n",
DEVNAME(sc), port);
- goto freeport;
+ free(ap, M_DEVBUF, sizeof(*ap));
+ goto reterr;
}
#ifdef AHCI_DEBUG