Lines Matching refs:e_info
812 static int add_error_device(struct aer_err_info *e_info, struct pci_dev *dev) in add_error_device() argument
814 if (e_info->error_dev_num < AER_MAX_MULTI_ERR_DEVICES) { in add_error_device()
815 e_info->dev[e_info->error_dev_num] = pci_dev_get(dev); in add_error_device()
816 e_info->error_dev_num++; in add_error_device()
827 static bool is_error_source(struct pci_dev *dev, struct aer_err_info *e_info) in is_error_source() argument
837 if ((PCI_BUS_NUM(e_info->id) != 0) && in is_error_source()
840 if (e_info->id == ((dev->bus->number << 8) | dev->devfn)) in is_error_source()
844 if (!e_info->multi_error_valid) in is_error_source()
868 if (e_info->severity == AER_CORRECTABLE) { in is_error_source()
883 struct aer_err_info *e_info = (struct aer_err_info *)data; in find_device_iter() local
885 if (is_error_source(dev, e_info)) { in find_device_iter()
887 if (add_error_device(e_info, dev)) { in find_device_iter()
894 if (!e_info->multi_error_valid) in find_device_iter()
913 struct aer_err_info *e_info) in find_source_device() argument
919 e_info->error_dev_num = 0; in find_source_device()
922 result = find_device_iter(dev, e_info); in find_source_device()
926 pci_walk_bus(parent->subordinate, find_device_iter, e_info); in find_source_device()
928 if (!e_info->error_dev_num) { in find_source_device()
929 pci_info(parent, "can't find device of ID%04x\n", e_info->id); in find_source_device()
1095 static inline void aer_process_err_devices(struct aer_err_info *e_info) in aer_process_err_devices() argument
1100 for (i = 0; i < e_info->error_dev_num && e_info->dev[i]; i++) { in aer_process_err_devices()
1101 if (aer_get_device_error_info(e_info->dev[i], e_info)) in aer_process_err_devices()
1102 aer_print_error(e_info->dev[i], e_info); in aer_process_err_devices()
1104 for (i = 0; i < e_info->error_dev_num && e_info->dev[i]; i++) { in aer_process_err_devices()
1105 if (aer_get_device_error_info(e_info->dev[i], e_info)) in aer_process_err_devices()
1106 handle_error_source(e_info->dev[i], e_info); in aer_process_err_devices()
1119 struct aer_err_info e_info; in aer_isr_one_error() local
1128 e_info.id = ERR_COR_ID(e_src->id); in aer_isr_one_error()
1129 e_info.severity = AER_CORRECTABLE; in aer_isr_one_error()
1132 e_info.multi_error_valid = 1; in aer_isr_one_error()
1134 e_info.multi_error_valid = 0; in aer_isr_one_error()
1135 aer_print_port_info(pdev, &e_info); in aer_isr_one_error()
1137 if (find_source_device(pdev, &e_info)) in aer_isr_one_error()
1138 aer_process_err_devices(&e_info); in aer_isr_one_error()
1142 e_info.id = ERR_UNCOR_ID(e_src->id); in aer_isr_one_error()
1145 e_info.severity = AER_FATAL; in aer_isr_one_error()
1147 e_info.severity = AER_NONFATAL; in aer_isr_one_error()
1150 e_info.multi_error_valid = 1; in aer_isr_one_error()
1152 e_info.multi_error_valid = 0; in aer_isr_one_error()
1154 aer_print_port_info(pdev, &e_info); in aer_isr_one_error()
1156 if (find_source_device(pdev, &e_info)) in aer_isr_one_error()
1157 aer_process_err_devices(&e_info); in aer_isr_one_error()