eeh_pe
static inline bool eeh_pe_passed(struct eeh_pe *pe)
struct eeh_pe *pe; /* Associated PE */
static inline struct eeh_pe *eeh_dev_to_pe(struct eeh_dev* edev)
int (*set_option)(struct eeh_pe *pe, int option);
int (*get_state)(struct eeh_pe *pe, int *delay);
int (*reset)(struct eeh_pe *pe, int option);
int (*get_log)(struct eeh_pe *pe, int severity, char *drv_log, unsigned long len);
int (*configure_bridge)(struct eeh_pe *pe);
int (*err_inject)(struct eeh_pe *pe, int type, int func,
int (*next_error)(struct eeh_pe **pe);
typedef void *(*eeh_pe_traverse_func)(struct eeh_pe *pe, void *flag);
int eeh_wait_state(struct eeh_pe *pe, int max_wait);
struct eeh_pe *eeh_phb_pe_get(struct pci_controller *phb);
struct eeh_pe *eeh_pe_next(struct eeh_pe *pe, struct eeh_pe *root);
struct eeh_pe *eeh_pe_get(struct pci_controller *phb, int pe_no);
int eeh_pe_tree_insert(struct eeh_dev *edev, struct eeh_pe *new_pe_parent);
void eeh_pe_update_time_stamp(struct eeh_pe *pe);
void *eeh_pe_traverse(struct eeh_pe *root,
void eeh_pe_dev_traverse(struct eeh_pe *root,
void eeh_pe_restore_bars(struct eeh_pe *pe);
const char *eeh_pe_loc_get(struct eeh_pe *pe);
struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe);
struct pci_bus *eeh_pe_bus_get_nolock(struct eeh_pe *pe);
int eeh_unfreeze_pe(struct eeh_pe *pe);
int eeh_pe_reset_and_recover(struct eeh_pe *pe);
struct eeh_pe *eeh_iommu_group_to_pe(struct iommu_group *group);
int eeh_pe_set_option(struct eeh_pe *pe, int option);
int eeh_pe_get_state(struct eeh_pe *pe);
int eeh_pe_reset(struct eeh_pe *pe, int option, bool include_passed);
int eeh_pe_configure(struct eeh_pe *pe);
int eeh_pe_inject_err(struct eeh_pe *pe, int type, int func,
struct eeh_pe *parent; /* Parent PE */
struct eeh_pe *pe; /* EEH PE */
int eeh_send_failure_event(struct eeh_pe *pe);
int __eeh_send_failure_event(struct eeh_pe *pe);
void eeh_remove_event(struct eeh_pe *pe, bool force);
void eeh_handle_normal_event(struct eeh_pe *pe);
void eeh_slot_error_detail(struct eeh_pe *pe, int severity);
int eeh_pci_enable(struct eeh_pe *pe, int function);
int eeh_pe_reset_full(struct eeh_pe *pe, bool include_passed);
void eeh_pe_state_mark(struct eeh_pe *pe, int state);
void eeh_pe_mark_isolated(struct eeh_pe *pe);
void eeh_pe_state_clear(struct eeh_pe *pe, int state, bool include_passed);
void eeh_pe_state_mark_with_cfg(struct eeh_pe *pe, int state);
void eeh_pe_dev_mode_mark(struct eeh_pe *pe, int mode);
int eeh_unfreeze_pe(struct eeh_pe *pe)
static int eeh_pe_change_owner(struct eeh_pe *pe)
struct eeh_pe *eeh_iommu_group_to_pe(struct iommu_group *group)
int eeh_pe_set_option(struct eeh_pe *pe, int option)
int eeh_pe_get_state(struct eeh_pe *pe)
static int eeh_pe_reenable_devices(struct eeh_pe *pe, bool include_passed)
int eeh_pe_reset(struct eeh_pe *pe, int option, bool include_passed)
int eeh_pe_configure(struct eeh_pe *pe)
int eeh_pe_inject_err(struct eeh_pe *pe, int type, int func,
struct eeh_pe *pe;
static void *eeh_dump_pe_log(struct eeh_pe *pe, void *flag)
void eeh_slot_error_detail(struct eeh_pe *pe, int severity)
static int eeh_phb_check_failure(struct eeh_pe *pe)
struct eeh_pe *phb_pe;
struct eeh_pe *pe, *parent_pe;
int eeh_pci_enable(struct eeh_pe *pe, int function)
struct eeh_pe *pe = eeh_dev_to_pe(edev);
static void eeh_pe_refreeze_passed(struct eeh_pe *root)
struct eeh_pe *pe;
int eeh_pe_reset_full(struct eeh_pe *pe, bool include_passed)
struct eeh_pe *pe, *phb_pe, *tmp_pe;
static void eeh_set_channel_state(struct eeh_pe *root, pci_channel_state_t s)
struct eeh_pe *pe;
static void eeh_set_irq_state(struct eeh_pe *root, bool enable)
struct eeh_pe *pe;
static void eeh_pe_report(const char *name, struct eeh_pe *root,
struct eeh_pe *pe;
static void *eeh_pe_detach_dev(struct eeh_pe *pe, void *userdata)
static int eeh_clear_pe_frozen_state(struct eeh_pe *root, bool include_passed)
struct eeh_pe *pe;
int eeh_pe_reset_and_recover(struct eeh_pe *pe)
static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus,
struct eeh_pe *tmp_pe;
static void eeh_pe_cleanup(struct eeh_pe *pe)
struct eeh_pe *child_pe, *tmp;
void eeh_handle_normal_event(struct eeh_pe *pe)
struct eeh_pe *tmp_pe;
struct eeh_pe *phb_pe = eeh_phb_pe_get(pe->phb);
int __eeh_send_failure_event(struct eeh_pe *pe)
int eeh_send_failure_event(struct eeh_pe *pe)
void eeh_remove_event(struct eeh_pe *pe, bool force)
int eeh_wait_state(struct eeh_pe *pe, int max_wait)
struct eeh_pe *eeh_phb_pe_get(struct pci_controller *phb)
struct eeh_pe *pe;
struct eeh_pe *eeh_pe_next(struct eeh_pe *pe, struct eeh_pe *root)
return list_entry(next, struct eeh_pe, child);
void *eeh_pe_traverse(struct eeh_pe *root,
struct eeh_pe *pe;
void eeh_pe_dev_traverse(struct eeh_pe *root,
struct eeh_pe *pe;
static void *__eeh_pe_get(struct eeh_pe *pe, void *flag)
struct eeh_pe *eeh_pe_get(struct pci_controller *phb, int pe_no)
struct eeh_pe *root = eeh_phb_pe_get(phb);
int eeh_pe_tree_insert(struct eeh_dev *edev, struct eeh_pe *new_pe_parent)
struct eeh_pe *pe, *parent;
struct eeh_pe *pe, *parent, *child;
static struct eeh_pe *eeh_pe_alloc(struct pci_controller *phb, int type)
struct eeh_pe *pe;
void eeh_pe_update_time_stamp(struct eeh_pe *pe)
void eeh_pe_state_mark(struct eeh_pe *root, int state)
struct eeh_pe *pe;
alloc_size = sizeof(struct eeh_pe);
void eeh_pe_mark_isolated(struct eeh_pe *root)
struct eeh_pe *pe;
void eeh_pe_dev_mode_mark(struct eeh_pe *pe, int mode)
void eeh_pe_state_clear(struct eeh_pe *root, int state, bool include_passed)
struct eeh_pe *pe;
pe->data = (void *)pe + ALIGN(sizeof(struct eeh_pe),
void eeh_pe_restore_bars(struct eeh_pe *pe)
const char *eeh_pe_loc_get(struct eeh_pe *pe)
struct eeh_pe *pe;
static struct pci_bus *_eeh_pe_bus_get(struct eeh_pe *pe, bool do_lock)
struct pci_bus *eeh_pe_bus_get(struct eeh_pe *pe)
struct pci_bus *eeh_pe_bus_get_nolock(struct eeh_pe *pe)
static int pnv_eeh_reset_vf_pe(struct eeh_pe *pe, int option)
static int pnv_eeh_reset(struct eeh_pe *pe, int option)
static int pnv_eeh_get_log(struct eeh_pe *pe, int severity,
static int pnv_eeh_configure_bridge(struct eeh_pe *pe)
static int pnv_eeh_err_inject(struct eeh_pe *pe, int type, int func,
u16 pe_no, struct eeh_pe **pe)
struct eeh_pe *dev_pe;
static int pnv_eeh_next_error(struct eeh_pe **pe)
struct eeh_pe *phb_pe, *parent_pe;
static struct eeh_pe *pnv_eeh_get_upstream_pe(struct pci_dev *pdev)
struct eeh_pe *upstream_pe;
static int pnv_eeh_set_option(struct eeh_pe *pe, int option)
static void pnv_eeh_get_phb_diag(struct eeh_pe *pe)
static int pnv_eeh_get_phb_state(struct eeh_pe *pe)
static int pnv_eeh_get_pe_state(struct eeh_pe *pe)
static int pnv_eeh_get_state(struct eeh_pe *pe, int *delay)
struct eeh_pe *pe;
static struct eeh_pe *pseries_eeh_pe_get_parent(struct eeh_dev *edev)
struct eeh_pe pe, *parent;
memset(&pe, 0, sizeof(struct eeh_pe));
static int pseries_eeh_set_option(struct eeh_pe *pe, int option)
static int pseries_eeh_get_state(struct eeh_pe *pe, int *delay)
static int pseries_eeh_reset(struct eeh_pe *pe, int option)
static int pseries_eeh_get_log(struct eeh_pe *pe, int severity, char *drv_log, unsigned long len)
static int pseries_eeh_configure_bridge(struct eeh_pe *pe)
struct eeh_pe *physfn_pe = pci_dev_to_eeh_dev(pdev->physfn)->pe;
static int pseries_eeh_err_inject(struct eeh_pe *pe, int type, int func,
struct eeh_pe *pe;
struct eeh_pe *pe;
struct eeh_pe *pe;
struct eeh_pe *pe;