git: 87085c12ba8f - main - Fix SATA NCQ error recovery after 25375b1415

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Thu, 27 Jun 2024 13:37:38 UTC
The branch main has been updated by mav:

URL: https://cgit.FreeBSD.org/src/commit/?id=87085c12ba8fa51f777bc636df67008b45e20d1c

commit 87085c12ba8fa51f777bc636df67008b45e20d1c
Author:     Alexander Motin <mav@FreeBSD.org>
AuthorDate: 2024-06-27 13:29:23 +0000
Commit:     Alexander Motin <mav@FreeBSD.org>
CommitDate: 2024-06-27 13:29:23 +0000

    Fix SATA NCQ error recovery after 25375b1415
    
    Since that commit ahci(4), siis(4) and mvs(4) drivers ended up
    using wrong command to fetch error information for NCQ commands.
    Since ATA errors are not very informative to begin with, the only
    noticeable effect is a lack of retries on those errors by CAM.
    
    MFC after:      1 week
    PR:             279978
---
 sys/dev/ahci/ahci.c | 2 +-
 sys/dev/mvs/mvs.c   | 2 +-
 sys/dev/siis/siis.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c
index b8cca377e47f..2910247d9327 100644
--- a/sys/dev/ahci/ahci.c
+++ b/sys/dev/ahci/ahci.c
@@ -2175,7 +2175,7 @@ completeall:
 	}
 	xpt_setup_ccb(&ccb->ccb_h, ch->hold[i]->ccb_h.path,
 	    ch->hold[i]->ccb_h.pinfo.priority);
-	if (ccb->ccb_h.func_code == XPT_ATA_IO) {
+	if (ch->hold[i]->ccb_h.func_code == XPT_ATA_IO) {
 		/* READ LOG */
 		ccb->ccb_h.recovery_type = RECOVERY_READ_LOG;
 		ccb->ccb_h.func_code = XPT_ATA_IO;
diff --git a/sys/dev/mvs/mvs.c b/sys/dev/mvs/mvs.c
index 253fdc096475..9677d16f088c 100644
--- a/sys/dev/mvs/mvs.c
+++ b/sys/dev/mvs/mvs.c
@@ -1798,7 +1798,7 @@ completeall:
 	}
 	xpt_setup_ccb(&ccb->ccb_h, ch->hold[i]->ccb_h.path,
 	    ch->hold[i]->ccb_h.pinfo.priority);
-	if (ccb->ccb_h.func_code == XPT_ATA_IO) {
+	if (ch->hold[i]->ccb_h.func_code == XPT_ATA_IO) {
 		/* READ LOG */
 		ccb->ccb_h.recovery_type = RECOVERY_READ_LOG;
 		ccb->ccb_h.func_code = XPT_ATA_IO;
diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c
index ad370c99f85e..e5b0b8b1f009 100644
--- a/sys/dev/siis/siis.c
+++ b/sys/dev/siis/siis.c
@@ -1394,7 +1394,7 @@ completeall:
 	}
 	xpt_setup_ccb(&ccb->ccb_h, ch->hold[i]->ccb_h.path,
 	    ch->hold[i]->ccb_h.pinfo.priority);
-	if (ccb->ccb_h.func_code == XPT_ATA_IO) {
+	if (ch->hold[i]->ccb_h.func_code == XPT_ATA_IO) {
 		/* READ LOG */
 		ccb->ccb_h.recovery_type = RECOVERY_READ_LOG;
 		ccb->ccb_h.func_code = XPT_ATA_IO;