Because of some quirk in the SCSI spec the aic79xx driver chose to force a renegotiation when sending an inquiry. This should better be handled by the upper layers if required at all. Signed-off-by: Hannes Reinecke <hare@xxxxxxx> -- Dr. Hannes Reinecke hare@xxxxxxx SuSE Linux Products GmbH S390 & zSeries Maxfeldstraße 5 +49 911 74053 688 90409 Nürnberg http://www.suse.de
[PATCH 07/07] aic79xx: Avoid renegotiation on inquiry Because of some quirk in the SCSI spec the aic79xx driver chose to force a renegotiation when sending an inquiry. This should better be handled by the upper layers if required at all. Signed-off-by: Hannes Reinecke <hare@xxxxxxx> --- drivers/scsi/aic7xxx/aic79xx_osm.c | 24 ------------------------ 1 files changed, 0 insertions(+), 24 deletions(-) 856120bb85cf6555ef268d62fcbc0fb404d7b06e diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c index 7b9dbef..c97ef05 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c @@ -1526,30 +1526,6 @@ ahd_linux_run_command(struct ahd_softc * if ((tstate->auto_negotiate & mask) != 0) { scb->flags |= SCB_AUTO_NEGOTIATE; scb->hscb->control |= MK_MESSAGE; - } else if (cmd->cmnd[0] == INQUIRY - && (tinfo->curr.offset != 0 - || tinfo->curr.width != MSG_EXT_WDTR_BUS_8_BIT - || tinfo->curr.ppr_options != 0) - && (tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ)==0) { - /* - * The SCSI spec requires inquiry - * commands to complete without - * reporting unit attention conditions. - * Because of this, an inquiry command - * that occurs just after a device is - * reset will result in a data phase - * with mismatched negotiated rates. - * The core already forces a renegotiation - * for reset events that are visible to - * our controller or that we initiate, - * but a third party device reset or a - * hot-plug insertion can still cause this - * issue. Therefore, we force a re-negotiation - * for every inquiry command unless we - * are async. - */ - scb->flags |= SCB_NEGOTIATE; - scb->hscb->control |= MK_MESSAGE; } if ((dev->flags & (AHD_DEV_Q_TAGGED|AHD_DEV_Q_BASIC)) != 0) { -- 1.1.3