提交 e0f4b7c5 编写于 作者: A Akinobu Mita 提交者: James Bottomley

[SCSI] ufs: don't disable_irq() if the IRQ can be shared among devices

When removing the UFS driver, disable_irq() is called and the IRQ is
not enabled again.  Unfortunately, the IRQ is requested with IRQF_SHARED
and it can be shared among several devices.  So disabling the IRQ in
this way is just breaking other devices which are sharing the IRQ.
Signed-off-by: NAkinobu Mita <mita@fixstars.com>
Signed-off-by: NSantosh Y <santoshsy@gmail.com>
Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
上级 36f4f3b6
...@@ -131,8 +131,6 @@ static void ufshcd_pci_remove(struct pci_dev *pdev) ...@@ -131,8 +131,6 @@ static void ufshcd_pci_remove(struct pci_dev *pdev)
pm_runtime_forbid(&pdev->dev); pm_runtime_forbid(&pdev->dev);
pm_runtime_get_noresume(&pdev->dev); pm_runtime_get_noresume(&pdev->dev);
disable_irq(pdev->irq);
ufshcd_remove(hba); ufshcd_remove(hba);
pci_set_drvdata(pdev, NULL); pci_set_drvdata(pdev, NULL);
} }
......
...@@ -188,8 +188,6 @@ static int ufshcd_pltfrm_remove(struct platform_device *pdev) ...@@ -188,8 +188,6 @@ static int ufshcd_pltfrm_remove(struct platform_device *pdev)
struct ufs_hba *hba = platform_get_drvdata(pdev); struct ufs_hba *hba = platform_get_drvdata(pdev);
pm_runtime_get_sync(&(pdev)->dev); pm_runtime_get_sync(&(pdev)->dev);
disable_irq(hba->irq);
ufshcd_remove(hba); ufshcd_remove(hba);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册