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: