diff options
| author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-03-20 21:30:27 +0000 | 
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-03-28 11:31:57 +1100 | 
| commit | 2a0352fa4a78081c76be1e450b51a6aa27c92616 (patch) | |
| tree | cacc28c7f6058cdc5bbf3d940917ca06ef1df84e /arch | |
| parent | e22057c8599373e5caef0bc42bdb95d2a361ab0d (diff) | |
powerpc/eeh: Remove eeh device from OF node
Originally, the PCI sensitive OF node is tracing the eeh device
through struct device_node->edev. However, it was regarded as
bad idea.
The patch removes struct device_node->edev and uses PCI_DN to
trace the corresponding eeh device according to BenH's comments.
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/powerpc/include/asm/pci-bridge.h | 8 | ||||
| -rw-r--r-- | arch/powerpc/platforms/pseries/eeh_dev.c | 2 | 
2 files changed, 9 insertions, 1 deletions
| diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 5d487657322e..21f99aec41b9 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -155,6 +155,7 @@ struct pci_dn {  	struct	pci_dev *pcidev;	/* back-pointer to the pci device */  #ifdef CONFIG_EEH +	struct eeh_dev *edev;		/* eeh device */  	int	class_code;		/* pci device class */  	int	eeh_mode;		/* See eeh.h for possible EEH_MODEs */  	int	eeh_config_addr; @@ -185,6 +186,13 @@ static inline int pci_device_from_OF_node(struct device_node *np,  	return 0;  } +#if defined(CONFIG_EEH) +static inline struct eeh_dev *of_node_to_eeh_dev(struct device_node *dn) +{ +	return PCI_DN(dn)->edev; +} +#endif +  /** Find the bus corresponding to the indicated device node */  extern struct pci_bus *pcibios_find_pci_bus(struct device_node *dn); diff --git a/arch/powerpc/platforms/pseries/eeh_dev.c b/arch/powerpc/platforms/pseries/eeh_dev.c index f3aed7dcae95..c4507d095900 100644 --- a/arch/powerpc/platforms/pseries/eeh_dev.c +++ b/arch/powerpc/platforms/pseries/eeh_dev.c @@ -62,7 +62,7 @@ void * __devinit eeh_dev_init(struct device_node *dn, void *data)  	}  	/* Associate EEH device with OF node */ -	dn->edev  = edev; +	PCI_DN(dn)->edev = edev;  	edev->dn  = dn;  	edev->phb = phb; | 
