Module Name: src Committed By: dyoung Date: Thu Mar 11 17:27:40 UTC 2010
Modified Files: src/sys/dev/cardbus: njata_cardbus.c njs_cardbus.c Log Message: Simplify interrupt (dis)establishment by two source transformations: - cardbus_intr_disestablish(cc, cf, ih); + Cardbus_intr_disestablish(ct, ih); - ih = cardbus_intr_establish(cc, cf, ...); + ih = Cardbus_intr_establish(ct, ...); Tested by ITOH Yasufumi. Results: njs(4) works, njata(4) hangs. njata(4) also hangs in 5.0.1 and in 5.99.24 prior to this patch, so there is no regression. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/dev/cardbus/njata_cardbus.c cvs rdiff -u -r1.15 -r1.16 src/sys/dev/cardbus/njs_cardbus.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/cardbus/njata_cardbus.c diff -u src/sys/dev/cardbus/njata_cardbus.c:1.12 src/sys/dev/cardbus/njata_cardbus.c:1.13 --- src/sys/dev/cardbus/njata_cardbus.c:1.12 Fri Feb 26 00:57:02 2010 +++ src/sys/dev/cardbus/njata_cardbus.c Thu Mar 11 17:27:40 2010 @@ -1,4 +1,4 @@ -/* $Id: njata_cardbus.c,v 1.12 2010/02/26 00:57:02 dyoung Exp $ */ +/* $Id: njata_cardbus.c,v 1.13 2010/03/11 17:27:40 dyoung Exp $ */ /* * Copyright (c) 2006 ITOH Yasufumi <it...@netbsd.org>. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: njata_cardbus.c,v 1.12 2010/02/26 00:57:02 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: njata_cardbus.c,v 1.13 2010/03/11 17:27:40 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -127,8 +127,6 @@ struct njata32_softc *sc = &csc->sc_njata32; const struct njata32_cardbus_product *prod; cardbus_devfunc_t ct = ca->ca_ct; - cardbus_chipset_tag_t cc = ct->ct_cc; - cardbus_function_tag_t cf = ct->ct_cf; pcireg_t reg; int csr; uint8_t latency = 0x20; @@ -211,7 +209,7 @@ /* * Establish the interrupt. */ - sc->sc_ih = cardbus_intr_establish(cc, cf, ca->ca_intrline, IPL_BIO, + sc->sc_ih = Cardbus_intr_establish(ct, ca->ca_intrline, IPL_BIO, njata32_intr, sc); if (sc->sc_ih == NULL) { aprint_error("%s: unable to establish interrupt\n", @@ -235,8 +233,7 @@ return rv; if (sc->sc_ih) - cardbus_intr_disestablish(csc->sc_ct->ct_cc, - csc->sc_ct->ct_cf, sc->sc_ih); + Cardbus_intr_disestablish(csc->sc_ct, sc->sc_ih); if (sc->sc_flags & NJATA32_IO_MAPPED) Cardbus_mapreg_unmap(csc->sc_ct, NJATA32_CARDBUS_BASEADDR_IO, Index: src/sys/dev/cardbus/njs_cardbus.c diff -u src/sys/dev/cardbus/njs_cardbus.c:1.15 src/sys/dev/cardbus/njs_cardbus.c:1.16 --- src/sys/dev/cardbus/njs_cardbus.c:1.15 Fri Feb 26 00:57:02 2010 +++ src/sys/dev/cardbus/njs_cardbus.c Thu Mar 11 17:27:40 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: njs_cardbus.c,v 1.15 2010/02/26 00:57:02 dyoung Exp $ */ +/* $NetBSD: njs_cardbus.c,v 1.16 2010/03/11 17:27:40 dyoung Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: njs_cardbus.c,v 1.15 2010/02/26 00:57:02 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: njs_cardbus.c,v 1.16 2010/03/11 17:27:40 dyoung Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -124,10 +124,7 @@ struct njsc32_softc *sc = &csc->sc_njsc32; const struct njsc32_cardbus_product *prod; cardbus_devfunc_t ct = ca->ca_ct; - cardbus_chipset_tag_t cc = ct->ct_cc; - cardbus_function_tag_t cf = ct->ct_cf; - pcireg_t reg; - int csr; + pcireg_t csr, reg; u_int8_t latency = 0x20; if ((prod = njs_cardbus_lookup(ca)) == NULL) @@ -204,7 +201,7 @@ /* * Establish the interrupt. */ - sc->sc_ih = cardbus_intr_establish(cc, cf, ca->ca_intrline, IPL_BIO, + sc->sc_ih = Cardbus_intr_establish(ct, ca->ca_intrline, IPL_BIO, njsc32_intr, sc); if (sc->sc_ih == NULL) { aprint_error_dev(self, @@ -231,8 +228,7 @@ return rv; if (sc->sc_ih) - cardbus_intr_disestablish(csc->sc_ct->ct_cc, - csc->sc_ct->ct_cf, sc->sc_ih); + Cardbus_intr_disestablish(csc->sc_ct, sc->sc_ih); if (sc->sc_flags & NJSC32_IO_MAPPED) Cardbus_mapreg_unmap(csc->sc_ct, NJSC32_CARDBUS_BASEADDR_IO,