From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sumit Saxena Subject: RE: [PATCH] megaraid_sas: init tasklet earlier Date: Wed, 26 Aug 2015 18:45:40 +0530 Message-ID: References: <1440509507-3337-1-git-send-email-thenzl@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from mail-lb0-f182.google.com ([209.85.217.182]:36780 "EHLO mail-lb0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752378AbbHZNPo (ORCPT ); Wed, 26 Aug 2015 09:15:44 -0400 Received: by lbbpu9 with SMTP id pu9so119717897lbb.3 for ; Wed, 26 Aug 2015 06:15:43 -0700 (PDT) In-Reply-To: <1440509507-3337-1-git-send-email-thenzl@redhat.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Tomas Henzl , linux-scsi@vger.kernel.org Cc: Kashyap Desai , Kiran Kumar Kasturi > -----Original Message----- > From: Tomas Henzl [mailto:thenzl@redhat.com] > Sent: Tuesday, August 25, 2015 7:02 PM > To: linux-scsi@vger.kernel.org > Cc: kashyap.desai@avagotech.com; kiran-kumar.kasturi@avagotech.com; > Sumit.Saxena@avagotech.com > 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 > --- > 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. > -- > 2.4.3