[SCSI] megaraid_sas: Fix bug where AENs could be lost in probe() and resume()
Signed-off-by: Adam Radford <aradford@gmail.com> Signed-off-by: James Bottomley <jbottomley@parallels.com>
This commit is contained in:
parent
46fd256e05
commit
541f90b7c6
|
@ -4114,6 +4114,14 @@ megasas_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
megasas_mgmt_info.instance[megasas_mgmt_info.max_index] = instance;
|
||||
megasas_mgmt_info.max_index++;
|
||||
|
||||
/*
|
||||
* Register with SCSI mid-layer
|
||||
*/
|
||||
if (megasas_io_attach(instance))
|
||||
goto fail_io_attach;
|
||||
|
||||
instance->unload = 0;
|
||||
|
||||
/*
|
||||
* Initiate AEN (Asynchronous Event Notification)
|
||||
*/
|
||||
|
@ -4122,13 +4130,6 @@ megasas_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
goto fail_start_aen;
|
||||
}
|
||||
|
||||
/*
|
||||
* Register with SCSI mid-layer
|
||||
*/
|
||||
if (megasas_io_attach(instance))
|
||||
goto fail_io_attach;
|
||||
|
||||
instance->unload = 0;
|
||||
return 0;
|
||||
|
||||
fail_start_aen:
|
||||
|
@ -4383,12 +4384,6 @@ megasas_resume(struct pci_dev *pdev)
|
|||
|
||||
instance->instancet->enable_intr(instance->reg_set);
|
||||
|
||||
/*
|
||||
* Initiate AEN (Asynchronous Event Notification)
|
||||
*/
|
||||
if (megasas_start_aen(instance))
|
||||
printk(KERN_ERR "megasas: Start AEN failed\n");
|
||||
|
||||
/* Initialize the cmd completion timer */
|
||||
if (poll_mode_io)
|
||||
megasas_start_timer(instance, &instance->io_completion_timer,
|
||||
|
@ -4396,6 +4391,12 @@ megasas_resume(struct pci_dev *pdev)
|
|||
MEGASAS_COMPLETION_TIMER_INTERVAL);
|
||||
instance->unload = 0;
|
||||
|
||||
/*
|
||||
* Initiate AEN (Asynchronous Event Notification)
|
||||
*/
|
||||
if (megasas_start_aen(instance))
|
||||
printk(KERN_ERR "megasas: Start AEN failed\n");
|
||||
|
||||
return 0;
|
||||
|
||||
fail_irq:
|
||||
|
|
Loading…
Reference in New Issue