History

drivers/vfio: Enable VFIO if EEH is not supported

The existing vfio_pci_open() fails upon error returned from vfio_spapr_pci_eeh_open(), which breaks POWER7's P5IOC2 PHB support which this patch brings back. The patch fixes the issue by dropping the return value of vfio_spapr_pci_eeh_open().

Alexey Kardashevskiy committed 12 years ago

Commit 9b936c91 parent 89a2edd3 files · +5 −10Browse files

Unified · Split

3 files
  1. drivers/vfio/pci/vfio_pci.c +1 −5
  2. drivers/vfio/vfio_spapr_eeh.c +2 −2
  3. include/linux/vfio.h +2 −3
drivers/vfio/pci/vfio_pci.c+1−5
@@ -200,11 +200,7 @@ static int vfio_pci_open(void *device_data) · 199 unmodified lines
200 if (ret)200 if (ret)
201 goto error;201 goto error;
202 202
203 ret = vfio_spapr_pci_eeh_open(vdev->pdev);203 vfio_spapr_pci_eeh_open(vdev->pdev);
204 if (ret) {
205 vfio_pci_disable(vdev);
206 goto error;
207 }
208 }204 }
209 vdev->refcnt++;205 vdev->refcnt++;
210error:206error:
drivers/vfio/vfio_spapr_eeh.c+2−2
@@ -19,9 +19,9 @@ · 18 unmodified lines
19#define DRIVER_DESC "VFIO IOMMU SPAPR EEH"19#define DRIVER_DESC "VFIO IOMMU SPAPR EEH"
20 20
21/* We might build address mapping here for "fast" path later */21/* We might build address mapping here for "fast" path later */
22int vfio_spapr_pci_eeh_open(struct pci_dev *pdev)22void vfio_spapr_pci_eeh_open(struct pci_dev *pdev)
23{23{
24 return eeh_dev_open(pdev);24 eeh_dev_open(pdev);
25}25}
26EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open);26EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open);
27 27
include/linux/vfio.h+2−3
@@ -100,15 +100,14 @@ extern long vfio_external_check_extension(struct vfio_group *group, · 99 unmodified lines
100 100
101struct pci_dev;101struct pci_dev;
102#ifdef CONFIG_EEH102#ifdef CONFIG_EEH
103extern int vfio_spapr_pci_eeh_open(struct pci_dev *pdev);103extern void vfio_spapr_pci_eeh_open(struct pci_dev *pdev);
104extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev);104extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev);
105extern long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,105extern long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,
106 unsigned int cmd,106 unsigned int cmd,
107 unsigned long arg);107 unsigned long arg);
108#else108#else
109static inline int vfio_spapr_pci_eeh_open(struct pci_dev *pdev)109static inline void vfio_spapr_pci_eeh_open(struct pci_dev *pdev)
110{110{
111 return 0;
112}111}
113 112
114static inline void vfio_spapr_pci_eeh_release(struct pci_dev *pdev)113static inline void vfio_spapr_pci_eeh_release(struct pci_dev *pdev)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t