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);
 

Reply via email to