On Tue, Mar 10, 2020 at 12:41 PM Greg KH gregkh@linuxfoundation.org wrote:
On Mon, Mar 09, 2020 at 11:17:38AM +0100, Jack Wang wrote:
From: Viswas G Viswas.G@microsemi.com
commit 0b6df110b3d0c12562011fcd032cfb6ff16b6d56 upstream
when there's an error in 'ncq mode' the host has to read the ncq error log (10h) to clear the error state. however, the ccb that is setup for doing this doesn't setup the ccb so that the previous state is cleared. if the ccb was previously used for an IO n_elems is set and pm8001_ccb_task_free() treats this as the signal to go free a scatter-gather list (that's already been freed).
Signed-off-by: Deepak Ukey deepak.ukey@microsemi.com Signed-off-by: Viswas G Viswas.G@microsemi.com Acked-by: Jack Wang jinpu.wang@profitbricks.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com
drivers/scsi/pm8001/pm80xx_hwi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c index 8627feb80261..bd945d832eb8 100644 --- a/drivers/scsi/pm8001/pm80xx_hwi.c +++ b/drivers/scsi/pm8001/pm80xx_hwi.c @@ -1500,8 +1500,9 @@ static void pm80xx_send_read_log(struct pm8001_hba_info *pm8001_ha, ccb->ccb_tag = ccb_tag; ccb->task = task; ccb->n_elem = 0;
pm8001_ha_dev->id |= NCQ_READ_LOG_FLAG;
pm8001_ha_dev->id |= NCQ_2ND_RLE_FLAG;
pm8001_ha_dev->id |= NCQ_READ_LOG_FLAG; // set this flag to indicate read log
pm8001_ha_dev->id |= NCQ_2ND_RLE_FLAG; // set this flag to guard against 2nd RLE. Workaround
// till FW fix is available.
Also, this isn't even the commit id referenced above :(
And there is trailing whitespace :(
Sorry, I must mess it up, please ignore it.