Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/ic avoid accessing condition variables which belong ...



details:   https://anonhg.NetBSD.org/src/rev/e4e0f350befe
branches:  trunk
changeset: 349798:e4e0f350befe
user:      macallan <macallan%NetBSD.org@localhost>
date:      Sat Dec 24 06:04:50 2016 +0000

description:
avoid accessing condition variables which belong to a scsibus before actually
attaching the scsibus
now my SS20 boots again

diffstat:

 sys/dev/ic/ncr53c9x.c |  12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diffs (45 lines):

diff -r b17b0f6d5809 -r e4e0f350befe sys/dev/ic/ncr53c9x.c
--- a/sys/dev/ic/ncr53c9x.c     Sat Dec 24 05:43:31 2016 +0000
+++ b/sys/dev/ic/ncr53c9x.c     Sat Dec 24 06:04:50 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ncr53c9x.c,v 1.145 2012/06/18 21:23:56 martin Exp $    */
+/*     $NetBSD: ncr53c9x.c,v 1.146 2016/12/24 06:04:50 macallan Exp $  */
 
 /*-
  * Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ncr53c9x.c,v 1.145 2012/06/18 21:23:56 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ncr53c9x.c,v 1.146 2016/12/24 06:04:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -296,7 +296,7 @@
        /* Reset state & bus */
        sc->sc_cfflags = device_cfdata(sc->sc_dev)->cf_flags;
        sc->sc_state = 0;
-       ncr53c9x_init(sc, 1);
+       ncr53c9x_init(sc, 0);   /* no bus reset yet, leave that to scsibus* */
 
        /*
         * Now try to attach all the sub-devices
@@ -555,14 +555,14 @@
        if (doreset) {
                sc->sc_state = NCR_SBR;
                NCRCMD(sc, NCRCMD_RSTSCSI);
+
+               /* Notify upper layer */
+               scsipi_async_event(&sc->sc_channel, ASYNC_EVENT_RESET, NULL);
        } else {
                sc->sc_state = NCR_IDLE;
                ncr53c9x_sched(sc);
        }
 
-       /* Notify upper layer */
-       scsipi_async_event(&sc->sc_channel, ASYNC_EVENT_RESET, NULL);
-
        /* XXXSMP scsipi */
        KERNEL_UNLOCK_ONE(curlwp);
 }



Home | Main Index | Thread Index | Old Index