All of lore.kernel.org
 help / color / mirror / Atom feed
* Mptlinux crashes on kernel 2.6.22.1
@ 2007-08-02 14:16 Hommel, Thomas (GE Indust, GE Fanuc)
  2007-08-06  9:08 ` Hommel, Thomas (GE Indust, GE Fanuc)
  0 siblings, 1 reply; 5+ messages in thread
From: Hommel, Thomas (GE Indust, GE Fanuc) @ 2007-08-02 14:16 UTC (permalink / raw)
  To: linux-scsi, mpt_linux_developer

Hello,

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?

Thanks for your help
Thomas

...
Fusion MPT base driver 3.04.04
Copyright (c) 1999-2007 LSI Logic Corporation
Fusion MPT SPI Host driver 3.04.04
mptbase: Initiating ioc0 bringup
ioc0: 53C1030: Capabilities={Initiator,Target}
mptbase: Initiating ioc0 recovery
Unable to handle kernel paging request for data at address 0x00000572
Faulting instruction address: 0xa01f135c
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=2 SBS CM6
NIP: a01f135c LR: a01f135c CTR: a000c984
REGS: bffd9e90 TRAP: 0300   Not tainted  (2.6.22.1)
MSR: 00009032 <EE,ME,IR,DR>  CR: 82002048  XER: 00000000
DAR: 00000572, DSISR: 40000000
TASK = bffcc050[9] 'events/0' THREAD: bffd8000 CPU: 0
GPR00: a01f135c bffd9f40 bffcc050 bfffd0c0 bfff4000 00000001 00019400
00000000
GPR08: 0007d710 00000001 a03c2000 bfff4000 22002042 ff9f6b77 0fffbd00
ffffffff
GPR16: 00000001 00000000 007fff00 a0395060 a03730b4 a0370000 a03730b4
a0040000
GPR24: a03730b4 a0370000 00000000 a03a0000 bffd8000 a01f1344 bffef8a4
000002f0
NIP [a01f135c] mptspi_dv_renegotiate_work+0x18/0x120
LR [a01f135c] mptspi_dv_renegotiate_work+0x18/0x120
Call Trace:
[bffd9f40] [a01f135c] mptspi_dv_renegotiate_work+0x18/0x120 (unreliable)
[bffd9f70] [a0034da8] run_workqueue+0xb8/0x170
[bffd9f90] [a00353e0] worker_thread+0x70/0xd4
[bffd9fd0] [a0038e5c] kthread+0x84/0x8c
[bffd9ff0] [a00122f8] kernel_thread+0x44/0x60
Instruction dump:
4bffd8b9 80010024 83e1001c 38210020 7c0803a6 4e800020 7c0802a6 9421ffd0
bf810020 90010034 83e30010 4be7757d <a01f0282> 2f800000 419e009c
813f0000

^ permalink raw reply	[flat|nested] 5+ messages in thread
* RE: Mptlinux crashes on kernel 2.6.22.1
@ 2007-08-08 18:12 Eric Moore
  0 siblings, 0 replies; 5+ messages in thread
From: Eric Moore @ 2007-08-08 18:12 UTC (permalink / raw)
  To: linux-scsi, Thomas.Hommel

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@lsi.com>


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;
 }
 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-08-08 18:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-02 14:16 Mptlinux crashes on kernel 2.6.22.1 Hommel, Thomas (GE Indust, GE Fanuc)
2007-08-06  9:08 ` Hommel, Thomas (GE Indust, GE Fanuc)
2007-08-07 10:58   ` Hommel, Thomas (GE Indust, GE Fanuc)
2007-08-07 11:11     ` Rolf Eike Beer
  -- strict thread matches above, loose matches on Subject: below --
2007-08-08 18:12 Eric Moore

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.