Module Name: src Committed By: msaitoh Date: Mon Oct 23 09:27:21 UTC 2017
Modified Files: src/sys/dev/ic: bwi.c src/sys/dev/pci: if_wm.c src/sys/dev/usb: if_upl.c Log Message: If if_initialize() failed in the attach function, return. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ic/bwi.c cvs rdiff -u -r1.540 -r1.541 src/sys/dev/pci/if_wm.c cvs rdiff -u -r1.59 -r1.60 src/sys/dev/usb/if_upl.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/bwi.c diff -u src/sys/dev/ic/bwi.c:1.32 src/sys/dev/ic/bwi.c:1.33 --- src/sys/dev/ic/bwi.c:1.32 Sat Jul 29 01:19:29 2017 +++ src/sys/dev/ic/bwi.c Mon Oct 23 09:27:21 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: bwi.c,v 1.32 2017/07/29 01:19:29 riastradh Exp $ */ +/* $NetBSD: bwi.c,v 1.33 2017/10/23 09:27:21 msaitoh Exp $ */ /* $OpenBSD: bwi.c,v 1.74 2008/02/25 21:13:30 mglocker Exp $ */ /* @@ -48,7 +48,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.32 2017/07/29 01:19:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.33 2017/10/23 09:27:21 msaitoh Exp $"); #include <sys/param.h> #include <sys/callout.h> @@ -1021,7 +1021,12 @@ bwi_attach(struct bwi_softc *sc) ic->ic_updateslot = bwi_updateslot; - if_initialize(ifp); + error = if_initialize(ifp); + if (error != 0) { + aprint_error_dev(sc->sc_dev, "if_initialize failed(%d)\n", + error); + goto fail; + } ieee80211_ifattach(ic); ifp->if_percpuq = if_percpuq_create(ifp); if_register(ifp); Index: src/sys/dev/pci/if_wm.c diff -u src/sys/dev/pci/if_wm.c:1.540 src/sys/dev/pci/if_wm.c:1.541 --- src/sys/dev/pci/if_wm.c:1.540 Fri Oct 20 09:26:13 2017 +++ src/sys/dev/pci/if_wm.c Mon Oct 23 09:27:21 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_wm.c,v 1.540 2017/10/20 09:26:13 msaitoh Exp $ */ +/* $NetBSD: if_wm.c,v 1.541 2017/10/23 09:27:21 msaitoh Exp $ */ /* * Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc. @@ -83,7 +83,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.540 2017/10/20 09:26:13 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.541 2017/10/23 09:27:21 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_net_mpsafe.h" @@ -2753,7 +2753,12 @@ alloc_retry: #endif /* Attach the interface. */ - if_initialize(ifp); + error = if_initialize(ifp); + if (error != 0) { + aprint_error_dev(sc->sc_dev, "if_initialize failed(%d)\n", + error); + return; /* Error */ + } sc->sc_ipq = if_percpuq_create(&sc->sc_ethercom.ec_if); ether_ifattach(ifp, enaddr); if_register(ifp); Index: src/sys/dev/usb/if_upl.c diff -u src/sys/dev/usb/if_upl.c:1.59 src/sys/dev/usb/if_upl.c:1.60 --- src/sys/dev/usb/if_upl.c:1.59 Thu Jan 12 18:26:08 2017 +++ src/sys/dev/usb/if_upl.c Mon Oct 23 09:27:21 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if_upl.c,v 1.59 2017/01/12 18:26:08 maya Exp $ */ +/* $NetBSD: if_upl.c,v 1.60 2017/10/23 09:27:21 msaitoh Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. * All rights reserved. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.59 2017/01/12 18:26:08 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.60 2017/10/23 09:27:21 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -228,6 +228,7 @@ upl_attach(device_t parent, device_t sel usb_interface_descriptor_t *id; usb_endpoint_descriptor_t *ed; int i; + int rv; DPRINTFN(5,(" : upl_attach: sc=%p, dev=%p", sc, dev)); @@ -307,7 +308,12 @@ upl_attach(device_t parent, device_t sel IFQ_SET_READY(&ifp->if_snd); /* Attach the interface. */ - if_initialize(ifp); + rv = if_initialize(ifp); + if (rv != 0) { + aprint_error_dev(self, "if_initialize failed(%d)\n", rv); + splx(s); + return; + } if_register(ifp); if_alloc_sadl(ifp);