From owner-svn-src-stable-9@FreeBSD.ORG  Sun Jan 29 00:50:42 2012
Return-Path: <owner-svn-src-stable-9@FreeBSD.ORG>
Delivered-To: svn-src-stable-9@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 06A9710656D7;
	Sun, 29 Jan 2012 00:50:42 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CA8FF8FC20;
	Sun, 29 Jan 2012 00:50:41 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0T0of1H008268;
	Sun, 29 Jan 2012 00:50:41 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0T0offU008266;
	Sun, 29 Jan 2012 00:50:41 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <201201290050.q0T0offU008266@svn.freebsd.org>
From: Marius Strobl <marius@FreeBSD.org>
Date: Sun, 29 Jan 2012 00:50:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
X-SVN-Group: stable-9
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r230705 - stable/9/sys/dev/dc
X-BeenThere: svn-src-stable-9@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 9-stable src tree
	<svn-src-stable-9.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9>, 
	<mailto:svn-src-stable-9-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable-9>
List-Post: <mailto:svn-src-stable-9@freebsd.org>
List-Help: <mailto:svn-src-stable-9-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9>, 
	<mailto:svn-src-stable-9-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 29 Jan 2012 00:50:42 -0000

Author: marius
Date: Sun Jan 29 00:50:41 2012
New Revision: 230705
URL: http://svn.freebsd.org/changeset/base/230705

Log:
  MFC: r227685
  
  - There's no need to ignore the return value of mii_attach(9) when attaching
    dcphy(4) (CID 9283).
  - In dc_detach(), check whether ifp is NULL as dc_attach() may call the
    former without ifp being allocated (CID 4288).
  
  Found with:	Coverity Prevent(tm)

Modified:
  stable/9/sys/dev/dc/if_dc.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/dev/dc/if_dc.c
==============================================================================
--- stable/9/sys/dev/dc/if_dc.c	Sun Jan 29 00:49:14 2012	(r230704)
+++ stable/9/sys/dev/dc/if_dc.c	Sun Jan 29 00:50:41 2012	(r230705)
@@ -2452,9 +2452,6 @@ dc_attach(device_t dev)
 		if (sc->dc_pmode != DC_PMODE_SIA)
 			sc->dc_pmode = DC_PMODE_SYM;
 		sc->dc_flags |= DC_21143_NWAY;
-		mii_attach(dev, &sc->dc_miibus, ifp, dc_ifmedia_upd,
-		    dc_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY,
-		    MII_OFFSET_ANY, 0);
 		/*
 		 * For non-MII cards, we need to have the 21143
 		 * drive the LEDs. Except there are some systems
@@ -2465,7 +2462,9 @@ dc_attach(device_t dev)
 		if (!(pci_get_subvendor(dev) == 0x1033 &&
 		    pci_get_subdevice(dev) == 0x8028))
 			sc->dc_flags |= DC_TULIP_LEDS;
-		error = 0;
+		error = mii_attach(dev, &sc->dc_miibus, ifp, dc_ifmedia_upd,
+		    dc_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY,
+		    MII_OFFSET_ANY, 0);
 	}
 
 	if (error) {
@@ -2534,7 +2533,7 @@ dc_detach(device_t dev)
 	ifp = sc->dc_ifp;
 
 #ifdef DEVICE_POLLING
-	if (ifp->if_capenable & IFCAP_POLLING)
+	if (ifp != NULL && ifp->if_capenable & IFCAP_POLLING)
 		ether_poll_deregister(ifp);
 #endif
 
@@ -2558,7 +2557,7 @@ dc_detach(device_t dev)
 	if (sc->dc_res)
 		bus_release_resource(dev, DC_RES, DC_RID, sc->dc_res);
 
-	if (ifp)
+	if (ifp != NULL)
 		if_free(ifp);
 
 	dc_dma_free(sc);
@@ -2608,7 +2607,6 @@ dc_list_tx_init(struct dc_softc *sc)
 	return (0);
 }
 
-
 /*
  * Initialize the RX descriptors and allocate mbufs for them. Note that
  * we arrange the descriptors in a closed ring, so that the last descriptor