PCI: PCIe AER: Introduce pci_aer_available()
Introduce a function allowing the caller to check whether to try to enable PCIe AER. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
committed by
Jesse Barnes
parent
23b90cfd7b
commit
f1a7bfaf6b
@@ -140,8 +140,10 @@ static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { }
|
|||||||
|
|
||||||
#ifdef CONFIG_PCIEAER
|
#ifdef CONFIG_PCIEAER
|
||||||
void pci_no_aer(void);
|
void pci_no_aer(void);
|
||||||
|
bool pci_aer_available(void);
|
||||||
#else
|
#else
|
||||||
static inline void pci_no_aer(void) { }
|
static inline void pci_no_aer(void) { }
|
||||||
|
static inline bool pci_aer_available(void) { return false; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline int pci_no_d1d2(struct pci_dev *dev)
|
static inline int pci_no_d1d2(struct pci_dev *dev)
|
||||||
|
@@ -72,6 +72,11 @@ void pci_no_aer(void)
|
|||||||
pcie_aer_disable = 1; /* has priority over 'forceload' */
|
pcie_aer_disable = 1; /* has priority over 'forceload' */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool pci_aer_available(void)
|
||||||
|
{
|
||||||
|
return !pcie_aer_disable && pci_msi_enabled();
|
||||||
|
}
|
||||||
|
|
||||||
static int set_device_error_reporting(struct pci_dev *dev, void *data)
|
static int set_device_error_reporting(struct pci_dev *dev, void *data)
|
||||||
{
|
{
|
||||||
bool enable = *((bool *)data);
|
bool enable = *((bool *)data);
|
||||||
@@ -411,9 +416,7 @@ static void aer_error_resume(struct pci_dev *dev)
|
|||||||
*/
|
*/
|
||||||
static int __init aer_service_init(void)
|
static int __init aer_service_init(void)
|
||||||
{
|
{
|
||||||
if (pcie_aer_disable)
|
if (!pci_aer_available())
|
||||||
return -ENXIO;
|
|
||||||
if (!pci_msi_enabled())
|
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
return pcie_port_service_register(&aerdriver);
|
return pcie_port_service_register(&aerdriver);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user