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: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Gavin Shan 2012-02-27 20:04:05 +00:00 committed by Benjamin Herrenschmidt
parent eb740b5f3e
commit 44da8edc6a
1 changed files with 10 additions and 13 deletions

View File

@ -41,24 +41,21 @@ static ssize_t eeh_show_##_name(struct device *dev, \
struct device_attribute *attr, char *buf) \ struct device_attribute *attr, char *buf) \
{ \ { \
struct pci_dev *pdev = to_pci_dev(dev); \ struct pci_dev *pdev = to_pci_dev(dev); \
struct device_node *dn = pci_device_to_OF_node(pdev); \ struct eeh_dev *edev = pci_dev_to_eeh_dev(pdev); \
struct pci_dn *pdn; \
\ \
if (!dn || PCI_DN(dn) == NULL) \ if (!edev) \
return 0; \ return 0; \
\ \
pdn = PCI_DN(dn); \ return sprintf(buf, _format "\n", edev->_memb); \
return sprintf(buf, _format "\n", pdn->_memb); \
} \ } \
static DEVICE_ATTR(_name, S_IRUGO, eeh_show_##_name, NULL); static DEVICE_ATTR(_name, S_IRUGO, eeh_show_##_name, NULL);
EEH_SHOW_ATTR(eeh_mode, mode, "0x%x");
EEH_SHOW_ATTR(eeh_mode, eeh_mode, "0x%x"); EEH_SHOW_ATTR(eeh_config_addr, config_addr, "0x%x");
EEH_SHOW_ATTR(eeh_config_addr, eeh_config_addr, "0x%x"); EEH_SHOW_ATTR(eeh_pe_config_addr, pe_config_addr, "0x%x");
EEH_SHOW_ATTR(eeh_pe_config_addr, eeh_pe_config_addr, "0x%x"); EEH_SHOW_ATTR(eeh_check_count, check_count, "%d" );
EEH_SHOW_ATTR(eeh_check_count, eeh_check_count, "%d"); EEH_SHOW_ATTR(eeh_freeze_count, freeze_count, "%d" );
EEH_SHOW_ATTR(eeh_freeze_count, eeh_freeze_count, "%d"); EEH_SHOW_ATTR(eeh_false_positives, false_positives, "%d" );
EEH_SHOW_ATTR(eeh_false_positives, eeh_false_positives, "%d");
void eeh_sysfs_add_device(struct pci_dev *pdev) void eeh_sysfs_add_device(struct pci_dev *pdev)
{ {