Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44da8edc authored by Gavin Shan's avatar Gavin Shan Committed by Benjamin Herrenschmidt
Browse files

powerpc/eeh: Replace pci_dn with eeh_dev for EEH sysfs



With original EEH implementation, all EEH related statistics have
been put into struct pci_dn. We've introduced struct eeh_dev to
replace struct pci_dn in EEH core components, including EEH sysfs
component.

The patch shows EEH statistics from struct eeh_dev instead of struct
pci_dn in EEH sysfs component. Besides, it also fixed the EEH device
retrieval from PCI device, which was introduced by the previous patch
in the series of patch.

Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent eb740b5f
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -41,24 +41,21 @@ static ssize_t eeh_show_##_name(struct device *dev, \
		struct device_attribute *attr, char *buf)          \
{                                                        \
	struct pci_dev *pdev = to_pci_dev(dev);               \
	struct device_node *dn = pci_device_to_OF_node(pdev); \
	struct pci_dn *pdn;                                   \
	struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev);      \
	                                                      \
	if (!dn || PCI_DN(dn) == NULL)                        \
	if (!edev)                                            \
		return 0;                                     \
	                                                      \
	pdn = PCI_DN(dn);                                     \
	return sprintf(buf, _format "\n", pdn->_memb);        \
	return sprintf(buf, _format "\n", edev->_memb);       \
}                                                        \
static DEVICE_ATTR(_name, S_IRUGO, eeh_show_##_name, NULL);


EEH_SHOW_ATTR(eeh_mode, eeh_mode, "0x%x");
EEH_SHOW_ATTR(eeh_config_addr, eeh_config_addr, "0x%x");
EEH_SHOW_ATTR(eeh_pe_config_addr, eeh_pe_config_addr, "0x%x");
EEH_SHOW_ATTR(eeh_check_count, eeh_check_count, "%d");
EEH_SHOW_ATTR(eeh_freeze_count, eeh_freeze_count, "%d");
EEH_SHOW_ATTR(eeh_false_positives, eeh_false_positives, "%d");
EEH_SHOW_ATTR(eeh_mode,            mode,            "0x%x");
EEH_SHOW_ATTR(eeh_config_addr,     config_addr,     "0x%x");
EEH_SHOW_ATTR(eeh_pe_config_addr,  pe_config_addr,  "0x%x");
EEH_SHOW_ATTR(eeh_check_count,     check_count,     "%d"  );
EEH_SHOW_ATTR(eeh_freeze_count,    freeze_count,    "%d"  );
EEH_SHOW_ATTR(eeh_false_positives, false_positives, "%d"  );

void eeh_sysfs_add_device(struct pci_dev *pdev)
{