#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/delay.h>
#include "adf_accel_devices.h"
#include "adf_common_drv.h"
#include "adf_pfvf_pf_msg.h"
struct adf_fatal_error_data { … };
static struct workqueue_struct *device_reset_wq;
static struct workqueue_struct *device_sriov_wq;
static pci_ers_result_t adf_error_detected(struct pci_dev *pdev,
pci_channel_state_t state)
{ … }
struct adf_reset_dev_data { … };
struct adf_sriov_dev_data { … };
void adf_reset_sbr(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void adf_reset_flr(struct adf_accel_dev *accel_dev)
{ … }
EXPORT_SYMBOL_GPL(…);
void adf_dev_restore(struct adf_accel_dev *accel_dev)
{ … }
static void adf_device_sriov_worker(struct work_struct *work)
{ … }
static void adf_device_reset_worker(struct work_struct *work)
{ … }
static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
enum adf_dev_reset_mode mode)
{ … }
static pci_ers_result_t adf_slot_reset(struct pci_dev *pdev)
{ … }
static void adf_resume(struct pci_dev *pdev)
{ … }
const struct pci_error_handlers adf_err_handler = …;
EXPORT_SYMBOL_GPL(…);
int adf_dev_autoreset(struct adf_accel_dev *accel_dev)
{ … }
static void adf_notify_fatal_error_worker(struct work_struct *work)
{ … }
int adf_notify_fatal_error(struct adf_accel_dev *accel_dev)
{ … }
int adf_init_aer(void)
{ … }
void adf_exit_aer(void)
{ … }