From owner-svn-src-all@FreeBSD.ORG Wed Mar 16 08:56:23 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16C32106564A; Wed, 16 Mar 2011 08:56:23 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EDAD18FC12; Wed, 16 Mar 2011 08:56:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2G8uM5U075208; Wed, 16 Mar 2011 08:56:22 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2G8uM6Z075203; Wed, 16 Mar 2011 08:56:22 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201103160856.p2G8uM6Z075203@svn.freebsd.org> From: Juli Mallett Date: Wed, 16 Mar 2011 08:56:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219695 - head/sys/mips/cavium/octe X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2011 08:56:23 -0000 Author: jmallett Date: Wed Mar 16 08:56:22 2011 New Revision: 219695 URL: http://svn.freebsd.org/changeset/base/219695 Log: o) Tear down receive interrupt on detach. Submitted by: Bhanu Prakash Modified: head/sys/mips/cavium/octe/ethernet-common.h head/sys/mips/cavium/octe/ethernet.c head/sys/mips/cavium/octe/octebus.c head/sys/mips/cavium/octe/octebusvar.h Modified: head/sys/mips/cavium/octe/ethernet-common.h ============================================================================== --- head/sys/mips/cavium/octe/ethernet-common.h Wed Mar 16 08:51:36 2011 (r219694) +++ head/sys/mips/cavium/octe/ethernet-common.h Wed Mar 16 08:56:22 2011 (r219695) @@ -39,7 +39,7 @@ void cvm_oct_common_set_multicast_list(s void cvm_oct_common_set_mac_address(struct ifnet *ifp, const void *); int cvm_oct_init_module(device_t); -void cvm_oct_cleanup_module(void); +void cvm_oct_cleanup_module(device_t); /* * XXX/juli Modified: head/sys/mips/cavium/octe/ethernet.c ============================================================================== --- head/sys/mips/cavium/octe/ethernet.c Wed Mar 16 08:51:36 2011 (r219694) +++ head/sys/mips/cavium/octe/ethernet.c Wed Mar 16 08:56:22 2011 (r219695) @@ -250,7 +250,7 @@ static void cvm_oct_configure_common_hw( error = bus_setup_intr(bus, sc->sc_rx_irq, INTR_TYPE_NET | INTR_MPSAFE, cvm_oct_do_interrupt, NULL, cvm_oct_device, - NULL); + &sc->sc_rx_intr_cookie); if (error != 0) { device_printf(bus, "could not setup workq irq"); return; @@ -473,17 +473,16 @@ int cvm_oct_init_module(device_t bus) * * @return Zero on success */ -void cvm_oct_cleanup_module(void) +void cvm_oct_cleanup_module(device_t bus) { int port; + struct octebus_softc *sc = device_get_softc(bus); /* Disable POW interrupt */ cvmx_write_csr(CVMX_POW_WQ_INT_THRX(pow_receive_group), 0); -#if 0 /* Free the interrupt handler */ - free_irq(8 + pow_receive_group, cvm_oct_device); -#endif + bus_teardown_intr(bus, sc->sc_rx_irq, sc->sc_rx_intr_cookie); callout_stop(&cvm_oct_poll_timer); cvm_oct_rx_shutdown(); Modified: head/sys/mips/cavium/octe/octebus.c ============================================================================== --- head/sys/mips/cavium/octe/octebus.c Wed Mar 16 08:51:36 2011 (r219694) +++ head/sys/mips/cavium/octe/octebus.c Wed Mar 16 08:56:22 2011 (r219695) @@ -112,7 +112,7 @@ octebus_attach(device_t dev) static int octebus_detach(device_t dev) { - cvm_oct_cleanup_module(); + cvm_oct_cleanup_module(dev); return (0); } Modified: head/sys/mips/cavium/octe/octebusvar.h ============================================================================== --- head/sys/mips/cavium/octe/octebusvar.h Wed Mar 16 08:51:36 2011 (r219694) +++ head/sys/mips/cavium/octe/octebusvar.h Wed Mar 16 08:56:22 2011 (r219695) @@ -33,6 +33,7 @@ struct octebus_softc { device_t sc_dev; struct resource *sc_rx_irq; + void *sc_rx_intr_cookie; struct resource *sc_rgmii_irq; struct resource *sc_spi_irq;