Skip to content

Commit 9d66b56

Browse files
Jiri SlabySamuel Ortiz
authored andcommitted
MFD: rtsx_pcr: Fix probe fail path
When rtsx_pci_acquire_irq fails in rtsx_pci_probe, we forget to disable an MSI (if we enabled it). This results in this warning on the next attempt to load the module: WARNING: at drivers/pci/msi.c:834 pci_enable_msi_block+0x2a4/0x2b0() Hardware name: HP EliteBook 840 G1 Modules linked in: rtsx_pci(+) ... Pid: 4056, comm: modprobe Tainted: G I 3.8.0-9405-gd895cb1-1-vanilla #1 Call Trace: [<ffffffff81045c6a>] warn_slowpath_common+0x7a/0xc0 [<ffffffff81045cc5>] warn_slowpath_null+0x15/0x20 [<ffffffff81302544>] pci_enable_msi_block+0x2a4/0x2b0 [<ffffffffa05e335a>] rtsx_pci_probe+0x55a/0x720 [rtsx_pci] ... So properly disable MSI in that case. Signed-off-by: Jiri Slaby <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
1 parent 58eb893 commit 9d66b56

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/mfd/rtsx_pcr.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
11381138

11391139
ret = rtsx_pci_acquire_irq(pcr);
11401140
if (ret < 0)
1141-
goto free_dma;
1141+
goto disable_msi;
11421142

11431143
pci_set_master(pcidev);
11441144
synchronize_irq(pcr->irq);
@@ -1162,7 +1162,9 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
11621162

11631163
disable_irq:
11641164
free_irq(pcr->irq, (void *)pcr);
1165-
free_dma:
1165+
disable_msi:
1166+
if (pcr->msi_en)
1167+
pci_disable_msi(pcr->pci);
11661168
dma_free_coherent(&(pcr->pci->dev), RTSX_RESV_BUF_LEN,
11671169
pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr);
11681170
unmap:

0 commit comments

Comments
 (0)