Module Name: src Committed By: skrll Date: Fri Feb 16 15:40:09 UTC 2024
Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Test sc->sc_soft_ih (not sc->sc_ih) to see if the soft interrupt got established correctly. >From Mori Hiroki. Fix some error recovery while I'm here. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/broadcom/bcm53xx_eth.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/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.43 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.44 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.43 Fri Feb 16 12:08:29 2024 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Feb 16 15:40:09 2024 @@ -35,7 +35,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.43 2024/02/16 12:08:29 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.44 2024/02/16 15:40:09 skrll Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -344,16 +344,15 @@ bcmeth_ccb_attach(device_t parent, devic (PRI_USER + MAXPRI_USER) / 2, IPL_NET, WQ_MPSAFE|WQ_PERCPU); if (error) { aprint_error(": failed to create workqueue: %d\n", error); - goto fail_2; + goto fail_1; } sc->sc_soft_ih = softint_establish(SOFTINT_MPSAFE | SOFTINT_NET, bcmeth_soft_intr, sc); - if (sc->sc_ih == NULL) { - aprint_error_dev(self, "failed to establish interrupt %d\n", - loc->loc_intrs[0]); - goto fail_3; + if (sc->sc_soft_ih == NULL) { + aprint_error_dev(self, "failed to establish soft interrupt\n"); + goto fail_2; } sc->sc_ih = intr_establish(loc->loc_intrs[0], IPL_VM, IST_LEVEL, @@ -362,7 +361,7 @@ bcmeth_ccb_attach(device_t parent, devic if (sc->sc_ih == NULL) { aprint_error_dev(self, "failed to establish interrupt %d\n", loc->loc_intrs[0]); - goto fail_4; + goto fail_3; } else { aprint_normal_dev(self, "interrupting on irq %d\n", loc->loc_intrs[0]); @@ -426,8 +425,6 @@ bcmeth_ccb_attach(device_t parent, devic return; -fail_4: - intr_disestablish(sc->sc_ih); fail_3: softint_disestablish(sc->sc_soft_ih); fail_2: