> -----Original Message-----
> From: Tomas Henzl [mailto:[email protected]]
> Sent: Wednesday, August 26, 2015 7:45 PM
> To: Sumit Saxena; [email protected]
> Cc: Kashyap Desai; Kiran Kumar Kasturi
> Subject: Re: [PATCH] megaraid_sas: init tasklet earlier
>
> On 26.8.2015 15:15, Sumit Saxena wrote:
> >> -----Original Message-----
> >> From: Tomas Henzl [mailto:[email protected]]
> >> Sent: Tuesday, August 25, 2015 7:02 PM
> >> To: [email protected]
> >> Cc: [email protected]; [email protected];
> >> [email protected]
> >> Subject: [PATCH] megaraid_sas: init tasklet earlier
> >>
> >> It may happen (kdump), that an interrupt is invoked just after the
> > setup_irqs
> >> function was called but before the tasklet was initialised.
> >> At this phase the hw ints should have been disabled, but for unknown
> > reason this
> >> mechanism seems to not work properly.
> >>
> >> Signed-off-by: Tomas Henzl <[email protected]>
> >> ---
> >>  drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++---
> >>  1 file changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c
> >> b/drivers/scsi/megaraid/megaraid_sas_base.c
> >> index 71b884dae2..c8e0c6de80 100644
> >> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> >> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> >> @@ -4627,6 +4627,9 @@ static int megasas_init_fw(struct
> >> megasas_instance
> >> *instance)
> >>            "current msix/online cpus\t: (%d/%d)\n",
> >>            instance->msix_vectors, (unsigned int)num_online_cpus());
> >>
> >> +  tasklet_init(&instance->isr_tasklet, instance->instancet->tasklet,
> >> +          (unsigned long)instance);
> >> +
> >>    if (instance->msix_vectors ?
> >>            megasas_setup_irqs_msix(instance, 1) :
> >>            megasas_setup_irqs_ioapic(instance))
> >> @@ -4647,9 +4650,6 @@ static int megasas_init_fw(struct
> >> megasas_instance
> >> *instance)
> >>    if (instance->instancet->init_adapter(instance))
> >>            goto fail_init_adapter;
> >>
> >> -  tasklet_init(&instance->isr_tasklet, instance->instancet->tasklet,
> >> -          (unsigned long)instance);
> >> -
> >>    instance->instancet->enable_intr(instance);
> >>
> >>    printk(KERN_ERR "megasas: INIT adapter done\n");
> >
> > Patch looks harmless and it fixes your problem then it's fine. But we
> > need to know the reason why interrupts are coming even if they are not
> > enabled by that time. Can you provide controller's FW version ? I
> > would like to try this locally.
>
> It is a "PERC 6/i Integrated" with
> FW Version         : 1.22.02-0612
> BIOS Version       : 2.04.00
> ------------------
>
> Even when you'll be able to fix it by another means, we can take my patch
> too,
> just because it calls the init functions in proper order and so it is
> safe(r).
Looks good.
Acked-by: Sumit Saxena <[email protected]>

>
> >
> >> --
> >> 2.4.3
> > --
> > 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
--
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