powerpc/eeh: Replace pci_dn with eeh_dev for EEH sysfs
authorGavin Shan <shangw@linux.vnet.ibm.com>
Mon, 27 Feb 2012 20:04:05 +0000 (20:04 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 9 Mar 2012 00:39:40 +0000 (11:39 +1100)
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>
arch/powerpc/platforms/pseries/eeh_sysfs.c

index 5e4eab1f44417f4345d87c2ac4d234fcd752a258..243b3510d70f7ae2e9e3a801eefd2440dd9366db 100644 (file)
@@ -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)                        \
-               return 0;                                          \
+       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)
 {