diff options
Diffstat (limited to 'sys/dev/sbus/be.c')
-rw-r--r-- | sys/dev/sbus/be.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sys/dev/sbus/be.c b/sys/dev/sbus/be.c index 38859b1d1b0..750e915c4e6 100644 --- a/sys/dev/sbus/be.c +++ b/sys/dev/sbus/be.c @@ -1,4 +1,4 @@ -/* $OpenBSD: be.c,v 1.4 2001/11/27 02:33:15 jason Exp $ */ +/* $OpenBSD: be.c,v 1.5 2001/11/28 05:42:24 jason Exp $ */ /* $NetBSD: be.c,v 1.26 2001/03/20 15:39:20 pk Exp $ */ /*- @@ -296,9 +296,11 @@ beattach(parent, self, aux) sc->sc_burst &= qec->sc_burst; /* Establish interrupt handler */ - if (sa->sa_nintr) - (void)bus_intr_establish(sa->sa_bustag, sa->sa_pri, IPL_NET, - 0, beintr, sc); + if (sa->sa_nintr == 0 || bus_intr_establish(sa->sa_bustag, sa->sa_pri, + IPL_NET, 0, beintr, sc) == NULL) { + printf(": no interrupt established\n"); + return; + } myetheraddr(sc->sc_arpcom.ac_enaddr); printf(" address %s\n", ether_sprintf(sc->sc_arpcom.ac_enaddr)); @@ -982,6 +984,11 @@ beioctl(ifp, cmd, data) s = splnet(); + if ((error = ether_ioctl(ifp, &sc->sc_arpcom, cmd, data)) > 0) { + splx(s); + return (error); + } + switch (cmd) { case SIOCSIFADDR: ifp->if_flags |= IFF_UP; |