Messages in this thread Patch in this message | | | Subject | Re: 2.5.63/64 do not boot: loop in scsi_error | From | James Bottomley <> | Date | 06 Mar 2003 11:21:40 -0600 |
| |
On Thu, 2003-03-06 at 11:15, Zwane Mwaikambo wrote: > On Thu, 6 Mar 2003, James Bottomley wrote: > > > This log implies the error handling finished after the BDR. That looks > > like the system doesn't have Mike's latest patch for the logic reversal > > problem in scsi_eh_ready_devs, could you check this? > > static void scsi_eh_ready_devs(struct Scsi_Host *shost, > struct list_head *work_q, > struct list_head *done_q) > { > if (scsi_eh_bus_device_reset(shost, work_q, done_q)) > if (scsi_eh_bus_reset(shost, work_q, done_q)) > if (scsi_eh_host_reset(work_q, done_q)) > scsi_eh_offline_sdevs(work_q, done_q); > } > > That is what i currently have, i'll try a boot with; > > - if (scsi_eh_bus_reset(shost, work_q, done_q)) > + if (!scsi_eh_bus_reset(shost, work_q, done_q)) > > Thanks, > Zwane
Actually, all three if's need nots in front:
diff -Nru a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c --- a/drivers/scsi/scsi_error.c Thu Mar 6 11:21:22 2003 +++ b/drivers/scsi/scsi_error.c Thu Mar 6 11:21:22 2003 @@ -1490,9 +1490,9 @@ struct list_head *work_q, struct list_head *done_q) { - if (scsi_eh_bus_device_reset(shost, work_q, done_q)) - if (scsi_eh_bus_reset(shost, work_q, done_q)) - if (scsi_eh_host_reset(work_q, done_q)) + if (!scsi_eh_bus_device_reset(shost, work_q, done_q)) + if (!scsi_eh_bus_reset(shost, work_q, done_q)) + if (!scsi_eh_host_reset(work_q, done_q)) scsi_eh_offline_sdevs(work_q, done_q); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |