Commit 569b11dcfa9d764e775f9e964a680c32265ab7f2

Authored by Moore, Eric
Committed by James Bottomley
1 parent e6bc863cf2

[SCSI] fusion - fix pci express bug

The fix is to write  'MPI_HIM_DIM' to the Host Interrupt Mask
register, when enabling interrupts.  Instead of the
tilde of MPI_HIM_RIM.

Apparently writing '1's to some of the reserved bits was causing
all the bits to go to `1`, which effectly disabled all interrupts.

Signed-off-by: Eric Moore <Eric.Moore@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

Showing 1 changed file with 4 additions and 4 deletions Side-by-side Diff

drivers/message/fusion/mptbase.c
... ... @@ -1630,7 +1630,7 @@
1630 1630 pci_enable_device(pdev);
1631 1631  
1632 1632 /* enable interrupts */
1633   - CHIPREG_WRITE32(&ioc->chip->IntMask, ~(MPI_HIM_RIM));
  1633 + CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM);
1634 1634 ioc->active = 1;
1635 1635  
1636 1636 /* F/W not running */
... ... @@ -1723,7 +1723,7 @@
1723 1723 /* (re)Enable alt-IOC! (reply interrupt, FreeQ) */
1724 1724 dprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n",
1725 1725 ioc->alt_ioc->name));
1726   - CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, ~(MPI_HIM_RIM));
  1726 + CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, MPI_HIM_DIM);
1727 1727 ioc->alt_ioc->active = 1;
1728 1728 }
1729 1729  
... ... @@ -1839,7 +1839,7 @@
1839 1839  
1840 1840 if (ret == 0) {
1841 1841 /* Enable! (reply interrupt) */
1842   - CHIPREG_WRITE32(&ioc->chip->IntMask, ~(MPI_HIM_RIM));
  1842 + CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM);
1843 1843 ioc->active = 1;
1844 1844 }
1845 1845  
... ... @@ -1847,7 +1847,7 @@
1847 1847 /* (re)Enable alt-IOC! (reply interrupt) */
1848 1848 dinitprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n",
1849 1849 ioc->alt_ioc->name));
1850   - CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, ~(MPI_HIM_RIM));
  1850 + CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, MPI_HIM_DIM);
1851 1851 ioc->alt_ioc->active = 1;
1852 1852 }
1853 1853