RE: Mptlinux crashes on kernel 2.6.22.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <Eric.Moore@xxxxxxx>


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux