scsi: pm80xx: Fixed system hang issue during kexec boot
When the firmware is not responding, execution of kexec boot causes a system hang. When firmware assertion happened, driver get notified with interrupt vector updated in MPI configuration table. Then, the driver will read scratchpad register and set controller_fatal_error flag to true. Signed-off-by: Deepak Ukey <deepak.ukey@microchip.com> Signed-off-by: Viswas G <Viswas.G@microchip.com> Acked-by: Jack Wang <jinpu.wang@profitbricks.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
76cb25b058
commit
72349b62a5
@@ -396,6 +396,13 @@ static int pm8001_task_exec(struct sas_task *task,
|
||||
return 0;
|
||||
}
|
||||
pm8001_ha = pm8001_find_ha_by_dev(task->dev);
|
||||
if (pm8001_ha->controller_fatal_error) {
|
||||
struct task_status_struct *ts = &t->task_status;
|
||||
|
||||
ts->resp = SAS_TASK_UNDELIVERED;
|
||||
t->task_done(t);
|
||||
return 0;
|
||||
}
|
||||
PM8001_IO_DBG(pm8001_ha, pm8001_printk("pm8001_task_exec device \n "));
|
||||
spin_lock_irqsave(&pm8001_ha->lock, flags);
|
||||
do {
|
||||
|
Reference in New Issue
Block a user