[SCSI] mpt2sas: fix cleanup on controller resource mapping failure
authorJoe Lawrence <joe.lawrence@stratus.com>
Thu, 8 Aug 2013 20:45:38 +0000 (16:45 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 26 Aug 2013 14:53:44 +0000 (18:53 +0400)
commit3b3e6f8df3b03642d6705d1db84842c24415b21f
tree3a383b0486eb5f9957e51806d072b513c6e82aa2
parent279afdfe78a020b4b1a68bffd0009b961b12982e
[SCSI] mpt2sas: fix cleanup on controller resource mapping failure

If mpt2sas_base_map_resources takes an early error path then its
counterpart, mpt2sas_base_free_resources needs to be careful about
cleaning up:

  1 - _base_mask_interrupts and _base_make_ioc_ready require memory
      mapped I/O registers, make sure that this is true.

  2 - _base_free_irq iterates over the adapter's reply_queue_list, so
      move this list head initialization out of _base_enable_msix to
      _scsih_probe so this will always be safe.

  3 - check that the controller PCI device and its BARs have been
      enabled before disabling them.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
Acked-by: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/mpt2sas/mpt2sas_base.c
drivers/scsi/mpt2sas/mpt2sas_scsih.c