Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/ic PR kern/51211: atactl atabus0 reset causes a pani...



details:   https://anonhg.NetBSD.org/src/rev/66ca1cbbf97e
branches:  trunk
changeset: 815783:66ca1cbbf97e
user:      jmcneill <jmcneill%NetBSD.org@localhost>
date:      Fri Jun 03 10:34:03 2016 +0000

description:
PR kern/51211: atactl atabus0 reset causes a panic on Tegra K1

Fix an issue where ahci_reset_channel calls ahci_channel_start with clo=1
even if CAP.SCLO=0.

diffstat:

 sys/dev/ic/ahcisata_core.c |  7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diffs (28 lines):

diff -r 9d372ee0a1b4 -r 66ca1cbbf97e sys/dev/ic/ahcisata_core.c
--- a/sys/dev/ic/ahcisata_core.c        Fri Jun 03 09:47:21 2016 +0000
+++ b/sys/dev/ic/ahcisata_core.c        Fri Jun 03 10:34:03 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ahcisata_core.c,v 1.56 2016/05/02 19:18:29 christos Exp $      */
+/*     $NetBSD: ahcisata_core.c,v 1.57 2016/06/03 10:34:03 jmcneill Exp $      */
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.56 2016/05/02 19:18:29 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahcisata_core.c,v 1.57 2016/06/03 10:34:03 jmcneill Exp $");
 
 #include <sys/types.h>
 #include <sys/malloc.h>
@@ -828,7 +828,8 @@
        /* clear port interrupt register */
        AHCI_WRITE(sc, AHCI_P_IS(chp->ch_channel), 0xffffffff);
        /* clear SErrors and start operations */
-       ahci_channel_start(sc, chp, flags, 1);
+       ahci_channel_start(sc, chp, flags,
+           (sc->sc_ahci_cap & AHCI_CAP_CLO) ? 1 : 0);
        /* wait 31s for BSY to clear */
        for (i = 0; i <AHCI_RST_WAIT; i++) {
                tfd = AHCI_READ(sc, AHCI_P_TFD(chp->ch_channel));



Home | Main Index | Thread Index | Old Index