mirror of https://gitee.com/openkylin/linux.git
misc: mei: Disable MSI when IRQ registration fails
Since MSI is enabled right before that, we should disable it when registration fails. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1e69d64a28
commit
169dc38868
|
@ -992,7 +992,7 @@ static int __devinit mei_probe(struct pci_dev *pdev,
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n",
|
dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n",
|
||||||
pdev->irq);
|
pdev->irq);
|
||||||
goto unmap_memory;
|
goto disable_msi;
|
||||||
}
|
}
|
||||||
INIT_DELAYED_WORK(&dev->timer_work, mei_timer);
|
INIT_DELAYED_WORK(&dev->timer_work, mei_timer);
|
||||||
if (mei_hw_init(dev)) {
|
if (mei_hw_init(dev)) {
|
||||||
|
@ -1023,8 +1023,8 @@ static int __devinit mei_probe(struct pci_dev *pdev,
|
||||||
mei_disable_interrupts(dev);
|
mei_disable_interrupts(dev);
|
||||||
flush_scheduled_work();
|
flush_scheduled_work();
|
||||||
free_irq(pdev->irq, dev);
|
free_irq(pdev->irq, dev);
|
||||||
|
disable_msi:
|
||||||
pci_disable_msi(pdev);
|
pci_disable_msi(pdev);
|
||||||
unmap_memory:
|
|
||||||
pci_iounmap(pdev, dev->mem_addr);
|
pci_iounmap(pdev, dev->mem_addr);
|
||||||
free_device:
|
free_device:
|
||||||
kfree(dev);
|
kfree(dev);
|
||||||
|
|
Loading…
Reference in New Issue