Skip to content

Commit

Permalink
[SCSI] megaraid_sas: Fix bug where AENs could be lost in probe() and …
Browse files Browse the repository at this point in the history
…resume()

Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <jbottomley@parallels.com>
  • Loading branch information
adam radford authored and James Bottomley committed May 24, 2011
1 parent 46fd256 commit 541f90b
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions drivers/scsi/megaraid/megaraid_sas_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
*/
Expand All @@ -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:
Expand Down Expand Up @@ -4383,19 +4384,19 @@ 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,
megasas_io_completion_timer,
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:
Expand Down

0 comments on commit 541f90b

Please sign in to comment.