From a3429859be7a0a095d52ae0fd45d5ee192e43555 Mon Sep 17 00:00:00 2001 From: Peter Avalos Date: Mon, 26 Nov 2007 01:08:42 +0000 Subject: [PATCH] (camperiphdone): When the cam_periph layer performs sense recovery, completion of recovery is indicated by positioning the CAM_AUTOSNS_VALID bit in the status field of the CCB, not in the flags field. This fixes an endless loop of sense recovery actions. Obtained-from: FreeBSD --- sys/bus/cam/cam_periph.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/bus/cam/cam_periph.c b/sys/bus/cam/cam_periph.c index 688191118c..e2c914669d 100644 --- a/sys/bus/cam/cam_periph.c +++ b/sys/bus/cam/cam_periph.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/cam/cam_periph.c,v 1.24.2.3 2003/01/25 19:04:40 dillon Exp $ - * $DragonFly: src/sys/bus/cam/cam_periph.c,v 1.32 2007/11/25 01:30:55 pavalos Exp $ + * $DragonFly: src/sys/bus/cam/cam_periph.c,v 1.33 2007/11/26 01:08:42 pavalos Exp $ */ #include @@ -951,7 +951,7 @@ camperiphdone(struct cam_periph *periph, union ccb *done_ccb) sense_key = saved_ccb->csio.sense_data.flags; sense_key &= SSD_KEY; if (sense_key != SSD_KEY_NO_SENSE) { - saved_ccb->ccb_h.flags |= + saved_ccb->ccb_h.status |= CAM_AUTOSNS_VALID; xpt_print_path(saved_ccb->ccb_h.path); kprintf("Recovered Sense\n"); -- 2.41.0