Module Name: src
Committed By: msaitoh
Date: Mon Oct 23 09:25:31 UTC 2017
Modified Files:
src/sys/dev/ic: atw.c
Log Message:
- Free resources correctly on some errors in atw_attach().
- Use apint*() insread of printf() in the attach function.
To generate a diff of this commit:
cvs rdiff -u -r1.161 -r1.162 src/sys/dev/ic/atw.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/ic/atw.c
diff -u src/sys/dev/ic/atw.c:1.161 src/sys/dev/ic/atw.c:1.162
--- src/sys/dev/ic/atw.c:1.161 Thu Feb 2 10:05:35 2017
+++ src/sys/dev/ic/atw.c Mon Oct 23 09:25:31 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: atw.c,v 1.161 2017/02/02 10:05:35 nonaka Exp $ */
+/* $NetBSD: atw.c,v 1.162 2017/10/23 09:25:31 msaitoh Exp $ */
/*-
* Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.161 2017/02/02 10:05:35 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.162 2017/10/23 09:25:31 msaitoh Exp $");
#include <sys/param.h>
@@ -621,7 +621,7 @@ atw_attach(struct atw_softc *sc)
atw_reset(sc);
if (atw_read_srom(sc) == -1)
- return;
+ goto fail_5;
sc->sc_rftype = __SHIFTOUT(sc->sc_srom[ATW_SR_CSR20],
ATW_SR_RFTYPE_MASK);
@@ -631,14 +631,14 @@ atw_attach(struct atw_softc *sc)
if (sc->sc_rftype >= __arraycount(type_strings)) {
aprint_error_dev(sc->sc_dev, "unknown RF\n");
- return;
+ goto fail_5;
}
if (sc->sc_bbptype >= __arraycount(type_strings)) {
aprint_error_dev(sc->sc_dev, "unknown BBP\n");
- return;
+ goto fail_5;
}
- printf("%s: %s RF, %s BBP", device_xname(sc->sc_dev),
+ aprint_normal_dev(sc->sc_dev, "%s RF, %s BBP",
type_strings[sc->sc_rftype], type_strings[sc->sc_bbptype]);
/* XXX There exists a Linux driver which seems to use RFType = 0 for
@@ -674,8 +674,8 @@ atw_attach(struct atw_softc *sc)
case ATW_BBPTYPE_MARVEL:
break;
case ATW_C_BBPTYPE_RFMD:
- printf("%s: ADM8211C MAC/RFMD BBP not supported yet.\n",
- device_xname(sc->sc_dev));
+ aprint_error_dev(sc->sc_dev,
+ "ADM8211C MAC/RFMD BBP not supported yet.\n");
break;
}
@@ -757,11 +757,12 @@ atw_attach(struct atw_softc *sc)
ic->ic_myaddr[5] = __SHIFTOUT(reg, ATW_PAR1_PAB5_MASK);
if (IEEE80211_ADDR_EQ(ic->ic_myaddr, empty_macaddr)) {
- printf(" could not get mac address, attach failed\n");
- return;
+ aprint_error_dev(sc->sc_dev,
+ "could not get mac address, attach failed\n");
+ goto fail_5;
}
- printf(" 802.11 address %s\n", ether_sprintf(ic->ic_myaddr));
+ aprint_normal(" 802.11 address %s\n", ether_sprintf(ic->ic_myaddr));
memcpy(ifp->if_xname, device_xname(sc->sc_dev), IFNAMSIZ);
ifp->if_softc = sc;
@@ -791,7 +792,12 @@ atw_attach(struct atw_softc *sc)
* Call MI attach routines.
*/
- if_initialize(ifp);
+ error = if_initialize(ifp);
+ if (error != 0) {
+ aprint_error_dev(sc->sc_dev, "if_initialize failed(%d)\n",
+ error);
+ goto fail_5;
+ }
ieee80211_ifattach(ic);
/* Use common softint-based if_input */
ifp->if_percpuq = if_percpuq_create(ifp);