Andrew Vasquez
048feec554
[SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP initialization completes.
...
Josip Rodin noted
(http://article.gmane.org/gmane.linux.ports.sparc/10152 ) the
driver oopsing during registration of an rport to the
FC-transport layer with a backtrace indicating a dereferencing of
an shost->shost_data equal to NULL. David Miller identified a
small window in driver logic where this could happen:
> Look at how the driver registers the IRQ handler before the host has
> been registered with the SCSI layer.
>
> That leads to a window of time where the shost hasn't been setup
> fully, yet ISRs can come in and trigger DPC thread events, such as
> loop resyncs, which expect the transport area to be setup.
>
> But it won't be setup, because scsi_add_host() hasn't finished yet.
>
> Note that in Josip's crash log, we don't even see the
>
> qla_printk(KERN_INFO, ha, "\n"
> " QLogic Fibre Channel HBA Driver: %s\n"
> " QLogic %s - %s\n"
> " ISP%04X: %s @ %s hdma%c, host#=%ld, fw=%s\n",
> ...
>
> message yet.
>
> Which means that the crash occurs between qla2x00_request_irqs()
> and printing that message.
Close this window by enabling RISC interrupts after the host has
been registered with the SCSI midlayer.
Reported-by: Josip Rodin <joy@entuzijast.net>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-09-13 13:12:58 -05:00
..
2008-07-15 18:58:04 -07:00
2008-04-28 17:31:13 -07:00
2008-07-27 10:31:49 -04:00
2008-04-19 19:10:33 -07:00
2008-08-07 09:55:48 +01:00
2008-08-29 09:13:51 -05:00
2008-08-23 12:14:12 -07:00
2008-08-16 10:49:32 -05:00
2008-07-27 10:31:49 -04:00
2008-08-23 12:14:12 -07:00
2008-08-16 10:32:24 -05:00
2008-08-23 12:14:12 -07:00
2008-09-13 13:12:58 -05:00
2008-07-26 15:14:49 -04:00
2008-07-26 15:14:56 -04:00
2008-01-11 18:22:30 -06:00
2008-07-26 15:15:00 -04:00
2008-07-26 15:15:00 -04:00
2008-06-20 14:05:53 -06:00
2008-05-02 10:18:22 -05:00
2008-07-15 14:30:56 -07:00
2008-04-07 12:19:07 -05:00
2008-04-07 12:19:01 -05:00
2007-10-12 14:41:00 -04:00
2008-07-27 10:31:49 -04:00
2008-07-27 10:31:49 -04:00
2007-08-04 09:11:06 -05:00
2008-04-27 12:19:55 -05:00
2008-01-30 13:14:02 -06:00
2008-02-06 10:41:01 -08:00
2008-01-11 18:28:57 -06:00
2007-11-25 12:19:26 +02:00
2008-05-23 08:11:07 -07:00
2008-04-07 12:15:44 -05:00
2008-04-07 12:15:44 -05:00
2007-10-12 14:41:00 -04:00
2008-07-26 15:17:47 -04:00
2008-05-02 11:33:25 -05:00
2008-04-07 12:15:40 -05:00
2008-07-21 21:54:44 -07:00
2008-05-08 10:46:56 -07:00
2007-11-25 12:19:26 +02:00
2008-04-07 12:15:40 -05:00
2008-04-25 09:52:30 -05:00
2008-07-15 18:58:04 -07:00
2008-06-25 12:36:13 -05:00
2008-01-11 18:22:35 -06:00
2008-04-28 17:31:13 -07:00
2008-04-27 12:19:55 -05:00
2007-11-25 12:19:26 +02:00
2008-02-18 09:02:25 -06:00
2007-10-12 14:55:46 -04:00
2008-06-20 14:05:49 -06:00
2008-04-07 12:15:36 -05:00
2008-04-07 12:19:07 -05:00
2008-07-21 21:54:52 -07:00
2008-08-05 18:16:58 +02:00
2008-01-11 18:28:06 -06:00
2008-01-30 13:14:02 -06:00
2008-08-05 18:16:59 +02:00
2008-07-27 10:31:49 -04:00
2008-01-11 18:22:36 -06:00
2008-05-02 10:18:22 -05:00
2008-07-11 13:45:48 -05:00
2008-07-27 10:31:49 -04:00
2008-08-23 12:14:12 -07:00
2008-08-23 12:14:12 -07:00
2008-07-12 08:22:29 -05:00
2008-07-12 08:22:20 -05:00
2008-04-27 12:33:04 -05:00
2008-08-29 08:59:50 -05:00
2008-07-12 08:22:29 -05:00
2008-07-27 10:31:49 -04:00
2008-01-30 13:14:02 -06:00
2008-05-21 16:56:00 -07:00
2008-04-07 12:15:40 -05:00
2008-07-26 15:14:56 -04:00
2008-06-20 14:05:53 -06:00
2008-06-05 09:23:44 -05:00
2007-10-12 14:41:00 -04:00
2008-04-07 12:19:07 -05:00
2008-05-01 08:04:03 -07:00
2008-05-01 08:04:02 -07:00
2007-10-12 14:51:18 -04:00
2008-01-30 13:14:02 -06:00
2008-01-23 13:44:31 -06:00
2007-10-12 14:55:07 -04:00
2007-10-12 14:41:00 -04:00
2008-07-27 10:31:49 -04:00
2008-08-23 12:14:12 -07:00
2008-08-23 12:14:12 -07:00
2008-07-14 15:29:34 -06:00
2007-10-12 14:50:55 -04:00
2007-11-25 12:19:26 +02:00
2008-07-27 10:31:49 -04:00
2008-04-07 12:19:02 -05:00
2008-07-27 10:31:49 -04:00
2007-10-23 12:35:35 -04:00
2007-10-22 21:19:53 +02:00
2008-01-30 13:14:02 -06:00
2008-02-23 09:07:32 -06:00
2007-10-12 14:52:38 -04:00
2008-04-19 19:10:33 -07:00
2008-07-27 10:31:49 -04:00
2008-07-27 10:31:49 -04:00
2008-08-29 09:15:06 -05:00
2008-01-11 18:22:50 -06:00
2008-07-27 10:31:49 -04:00
2008-07-27 10:31:49 -04:00
2008-07-26 15:14:55 -04:00
2008-07-27 10:31:49 -04:00
2008-04-19 19:10:33 -07:00
2008-08-29 09:19:11 -05:00
2008-07-26 15:14:54 -04:00
2008-07-02 15:06:25 -06:00
2008-05-02 10:18:22 -05:00
2008-07-27 10:31:49 -04:00
2007-10-12 14:46:58 -04:00
2008-07-27 10:31:49 -04:00
2008-07-21 21:54:52 -07:00
2008-07-27 10:31:49 -04:00
2008-07-30 10:22:39 -05:00
2007-10-12 14:38:09 -04:00
2008-04-19 19:10:33 -07:00
2008-07-26 15:14:55 -04:00
2008-01-11 18:22:40 -06:00
2008-07-26 15:14:56 -04:00
2008-09-11 14:20:23 +02:00
2008-08-05 21:42:21 -07:00
2008-07-30 10:21:56 -05:00
2008-08-27 09:50:19 +02:00
2008-04-27 12:33:04 -05:00
2008-04-27 12:33:04 -05:00
2008-02-07 18:02:44 -06:00
2008-09-11 14:20:23 +02:00
2008-02-07 18:02:44 -06:00
2008-04-07 12:15:39 -05:00
2008-07-26 15:14:47 -04:00
2008-04-07 12:15:39 -05:00
2008-07-26 15:14:49 -04:00
2008-01-11 18:28:57 -06:00
2008-04-16 09:28:11 -05:00
2007-11-25 12:19:26 +02:00
2008-04-27 12:33:04 -05:00
2008-07-24 10:47:21 -07:00
2008-02-12 15:24:58 -06:00
2007-11-25 12:19:26 +02:00
2008-07-27 10:31:49 -04:00
2008-05-02 13:18:06 -05:00
2008-04-28 17:31:13 -07:00
2008-04-07 12:19:01 -05:00
2007-10-19 23:22:55 +02:00
2008-07-27 10:31:49 -04:00
2008-07-27 10:31:49 -04:00
2007-11-29 09:24:52 -08:00