forked from Minki/linux
megaraid_sas: Initialize tasklet before setting up IRQs
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. From: Tomas Henzl <thenzl@redhat.com> Signed-off-by: Tomas Henzl <thenzl@redhat.com> Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
3222251dbb
commit
91626c2701
@ -4745,6 +4745,9 @@ static int megasas_init_fw(struct megasas_instance *instance)
|
|||||||
"current msix/online cpus\t: (%d/%d)\n",
|
"current msix/online cpus\t: (%d/%d)\n",
|
||||||
instance->msix_vectors, (unsigned int)num_online_cpus());
|
instance->msix_vectors, (unsigned int)num_online_cpus());
|
||||||
|
|
||||||
|
tasklet_init(&instance->isr_tasklet, instance->instancet->tasklet,
|
||||||
|
(unsigned long)instance);
|
||||||
|
|
||||||
if (instance->msix_vectors ?
|
if (instance->msix_vectors ?
|
||||||
megasas_setup_irqs_msix(instance, 1) :
|
megasas_setup_irqs_msix(instance, 1) :
|
||||||
megasas_setup_irqs_ioapic(instance))
|
megasas_setup_irqs_ioapic(instance))
|
||||||
@ -4765,8 +4768,6 @@ static int megasas_init_fw(struct megasas_instance *instance)
|
|||||||
if (instance->instancet->init_adapter(instance))
|
if (instance->instancet->init_adapter(instance))
|
||||||
goto fail_init_adapter;
|
goto fail_init_adapter;
|
||||||
|
|
||||||
tasklet_init(&instance->isr_tasklet, instance->instancet->tasklet,
|
|
||||||
(unsigned long)instance);
|
|
||||||
|
|
||||||
instance->instancet->enable_intr(instance);
|
instance->instancet->enable_intr(instance);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user