On 2007-08-02 14:16:49, Hommel, Thomas wrote:
> I am trying to use a LSI53C1020 based adapter on a PowerPC board with
> MPC8641D processor. When initializing, the driver crashes the system
> with the error message below. Kernel version is 2.6.22.1, driver
> 3.04.04. The chip on the adapter is a 53C1020, but the driver detects a
> 53C1030. Has anyone experienced similar problems already?


Try this patch out.  It appears that when loading the driver, your getting a
timeout when requesting a firmware config page. The timeout results in a
diag_reset of the controller, and all the ioc_reset callbacks are called for
every registered driver. When mptspi_ioc_reset is called, the hd object has
not be initialized.  The fix is to return when hd is NULL.  This object will
be setup once mptspi_probe has completed calling scsi_host_alloc.

Signed-off-by: Eric Moore <[EMAIL PROTECTED]>


diff -uarpN b/drivers/message/fusion/mptspi.c a/drivers/message/fusion/mptspi.c
--- b/drivers/message/fusion/mptspi.c   2007-08-08 11:41:02.000000000 -0600
+++ a/drivers/message/fusion/mptspi.c   2007-08-08 11:59:56.000000000 -0600
@@ -1249,14 +1249,20 @@ mptspi_dv_renegotiate(struct _MPT_SCSI_H
 static int
 mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
 {
-       struct _MPT_SCSI_HOST *hd = (struct _MPT_SCSI_HOST *)ioc->sh->hostdata;
+       struct _MPT_SCSI_HOST *hd = NULL;
        int rc;
 
        rc = mptscsih_ioc_reset(ioc, reset_phase);
+       if ((ioc->bus_type != SPI) || (!rc))
+               goto out;
 
-       if (reset_phase == MPT_IOC_POST_RESET)
-               mptspi_dv_renegotiate(hd);
+       hd = (MPT_SCSI_HOST *)ioc->sh->hostdata;
+       if (!hd || !hd->ioc)
+               goto out;
 
+       if (ioc->active && reset_phase == MPT_IOC_POST_RESET)
+               mptspi_dv_renegotiate(hd);
+ out:
        return rc;
 }
 

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to