Don't use sleep() and a callout; just use tsleep().
This commit is contained in:
parent
b3b7588160
commit
d0a8b751b2
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: tropic.c,v 1.7 2000/03/23 07:01:32 thorpej Exp $ */
|
/* $NetBSD: tropic.c,v 1.8 2000/05/27 04:46:24 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ported to NetBSD by Onno van der Linden
|
* Ported to NetBSD by Onno van der Linden
|
||||||
|
@ -88,7 +88,6 @@ void tr_xint __P((struct tr_softc *));
|
||||||
void tr_oldxint __P((struct tr_softc *));
|
void tr_oldxint __P((struct tr_softc *));
|
||||||
struct mbuf *tr_get __P((struct tr_softc *, int, struct ifnet *));
|
struct mbuf *tr_get __P((struct tr_softc *, int, struct ifnet *));
|
||||||
void tr_opensap __P((struct tr_softc *, u_char));
|
void tr_opensap __P((struct tr_softc *, u_char));
|
||||||
void tr_timeout __P((void *));
|
|
||||||
int tr_mbcopy __P((struct tr_softc *, bus_size_t, struct mbuf *));
|
int tr_mbcopy __P((struct tr_softc *, bus_size_t, struct mbuf *));
|
||||||
void tr_bcopy __P((struct tr_softc *, u_char *, int));
|
void tr_bcopy __P((struct tr_softc *, u_char *, int));
|
||||||
void tr_start __P((struct ifnet *));
|
void tr_start __P((struct ifnet *));
|
||||||
|
@ -442,7 +441,6 @@ tr_attach(sc)
|
||||||
bpfattach(&ifp->if_bpf, ifp, DLT_IEEE802, sizeof(struct token_header));
|
bpfattach(&ifp->if_bpf, ifp, DLT_IEEE802, sizeof(struct token_header));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
callout_init(&sc->sc_timeout_callout);
|
|
||||||
callout_init(&sc->sc_init_callout);
|
callout_init(&sc->sc_init_callout);
|
||||||
callout_init(&sc->sc_reinit_callout);
|
callout_init(&sc->sc_reinit_callout);
|
||||||
|
|
||||||
|
@ -894,7 +892,6 @@ tr_intr(arg)
|
||||||
sc->sc_xmit_buffers);
|
sc->sc_xmit_buffers);
|
||||||
#endif
|
#endif
|
||||||
sc->sc_xmit_correlator = 0;
|
sc->sc_xmit_correlator = 0;
|
||||||
callout_stop(&sc->sc_timeout_callout);
|
|
||||||
wakeup(&sc->tr_sleepevent);
|
wakeup(&sc->tr_sleepevent);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -924,12 +921,10 @@ tr_intr(arg)
|
||||||
ifp->if_flags &= ~IFF_RUNNING;
|
ifp->if_flags &= ~IFF_RUNNING;
|
||||||
ifp->if_flags &= ~IFF_UP;
|
ifp->if_flags &= ~IFF_UP;
|
||||||
ifp->if_flags &= ~IFF_OACTIVE;
|
ifp->if_flags &= ~IFF_OACTIVE;
|
||||||
callout_stop(&sc->sc_timeout_callout);
|
|
||||||
wakeup(&sc->tr_sleepevent);
|
wakeup(&sc->tr_sleepevent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DIR_SET_DEFAULT_RING_SPEED:
|
case DIR_SET_DEFAULT_RING_SPEED:
|
||||||
callout_stop(&sc->sc_timeout_callout);
|
|
||||||
wakeup(&sc->tr_sleepevent);
|
wakeup(&sc->tr_sleepevent);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -942,7 +937,6 @@ tr_intr(arg)
|
||||||
SRB_OPNSAP_STATIONID);
|
SRB_OPNSAP_STATIONID);
|
||||||
printf("%s: Token Ring opened\n",
|
printf("%s: Token Ring opened\n",
|
||||||
sc->sc_dev.dv_xname);
|
sc->sc_dev.dv_xname);
|
||||||
callout_stop(&sc->sc_timeout_callout);
|
|
||||||
wakeup(&sc->tr_sleepevent);
|
wakeup(&sc->tr_sleepevent);
|
||||||
break;
|
break;
|
||||||
/* XXX DLC_CLOSE_SAP not needed ? */
|
/* XXX DLC_CLOSE_SAP not needed ? */
|
||||||
|
@ -1717,8 +1711,11 @@ void
|
||||||
tr_sleep(sc)
|
tr_sleep(sc)
|
||||||
struct tr_softc *sc;
|
struct tr_softc *sc;
|
||||||
{
|
{
|
||||||
callout_reset(&sc->sc_timeout_callout, hz * 30, tr_timeout, sc);
|
int error;
|
||||||
sleep(&sc->tr_sleepevent, 1);
|
|
||||||
|
error = tsleep(&sc->tr_sleepevent, 1, "trsleep", hz * 30);
|
||||||
|
if (error == EWOULDBLOCK)
|
||||||
|
printf("%s: sleep event timeout\n", sc->sc_dev.dv_xname);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1732,16 +1729,3 @@ struct ifnet *ifp;
|
||||||
|
|
||||||
tr_reset(sc);
|
tr_reset(sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* tr_timeout - timeout routine if adapter does not open in 30 seconds
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
tr_timeout(arg)
|
|
||||||
void *arg;
|
|
||||||
{
|
|
||||||
struct tr_softc *sc = arg;
|
|
||||||
|
|
||||||
printf("Token Ring timeout\n");
|
|
||||||
wakeup(&sc->tr_sleepevent);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: tropicvar.h,v 1.5 2000/03/23 07:01:33 thorpej Exp $ */
|
/* $NetBSD: tropicvar.h,v 1.6 2000/05/27 04:46:56 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mach Operating System
|
* Mach Operating System
|
||||||
|
@ -71,7 +71,6 @@ struct tr_softc {
|
||||||
bus_space_handle_t sc_sramh; /* handle for the shared ram area */
|
bus_space_handle_t sc_sramh; /* handle for the shared ram area */
|
||||||
bus_space_handle_t sc_mmioh; /* handle for the bios/mmio area */
|
bus_space_handle_t sc_mmioh; /* handle for the bios/mmio area */
|
||||||
|
|
||||||
struct callout sc_timeout_callout;
|
|
||||||
struct callout sc_init_callout;
|
struct callout sc_init_callout;
|
||||||
struct callout sc_reinit_callout;
|
struct callout sc_reinit_callout;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue