Module Name: src Committed By: dholland Date: Sun Aug 30 04:11:40 UTC 2015
Modified Files: src/sys/dev/ic: smc91cxx.c Log Message: Even if the "card went away", don't return from smc91cxx_init without restoring interrupts. From maxv's brainy list. To generate a diff of this commit: cvs rdiff -u -r1.89 -r1.90 src/sys/dev/ic/smc91cxx.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/dev/ic/smc91cxx.c diff -u src/sys/dev/ic/smc91cxx.c:1.89 src/sys/dev/ic/smc91cxx.c:1.90 --- src/sys/dev/ic/smc91cxx.c:1.89 Mon Apr 13 16:33:24 2015 +++ src/sys/dev/ic/smc91cxx.c Sun Aug 30 04:11:40 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: smc91cxx.c,v 1.89 2015/04/13 16:33:24 riastradh Exp $ */ +/* $NetBSD: smc91cxx.c,v 1.90 2015/08/30 04:11:40 dholland Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.89 2015/04/13 16:33:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smc91cxx.c,v 1.90 2015/08/30 04:11:40 dholland Exp $"); #include "opt_inet.h" @@ -524,8 +524,11 @@ smc91cxx_init(struct smc91cxx_softc *sc) sc->sc_txpacketno = ARR_FAILED; for (;;) { tmp = bus_space_read_2(bst, bsh, MMU_CMD_REG_W); - if (tmp == 0xffff) /* card went away! */ + if (tmp == 0xffff) { + /* card went away! */ + splx(s); return; + } if ((tmp & MMUCR_BUSY) == 0) break; }