diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2003-03-24 17:40:01 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2003-03-24 17:40:01 +0000 |
commit | a18db15e78aa10682d3327b9d47a1470782fdb20 (patch) | |
tree | e61625e6a71c4a3cc5fdb2684aec3f636bbea6a3 | |
parent | 757538563d9bee41bc2c216c3c5570bb162a1751 (diff) |
splimp() around xl_reset() during autoconf. something in xl_reset() wants
to generate an interrupt before the rings are setup correctly on some
variants; ok deraadt.
-rw-r--r-- | sys/dev/ic/xl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/ic/xl.c b/sys/dev/ic/xl.c index 511decb73d6..01594b2fa14 100644 --- a/sys/dev/ic/xl.c +++ b/sys/dev/ic/xl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xl.c,v 1.48 2003/01/05 20:07:44 deraadt Exp $ */ +/* $OpenBSD: xl.c,v 1.49 2003/03/24 17:40:00 jason Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -2577,7 +2577,9 @@ xl_attach(sc) struct ifmedia *ifm; sc->xl_unit = sc->sc_dev.dv_unit; + i = splimp(); xl_reset(sc, 1); + splx(i); /* * Get station address from the EEPROM. @@ -2755,7 +2757,9 @@ xl_attach(sc) */ if (sc->xl_xcvr == XL_XCVR_AUTO) { xl_choose_xcvr(sc, 0); + i = splimp(); xl_reset(sc, 0); + splx(i); } if (sc->xl_media & XL_MEDIAOPT_BT) { |