mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
PCI: Add pci_bus_set_ops
pci_bus_set_ops changes pci_ops associated with a pci_bus. This can be used by debug tools such as PCIE AER error injection to fake some PCI configuration registers. Acked-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
1eb3948716
commit
a72b46c384
@ -66,6 +66,25 @@ EXPORT_SYMBOL(pci_bus_write_config_byte);
|
|||||||
EXPORT_SYMBOL(pci_bus_write_config_word);
|
EXPORT_SYMBOL(pci_bus_write_config_word);
|
||||||
EXPORT_SYMBOL(pci_bus_write_config_dword);
|
EXPORT_SYMBOL(pci_bus_write_config_dword);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pci_bus_set_ops - Set raw operations of pci bus
|
||||||
|
* @bus: pci bus struct
|
||||||
|
* @ops: new raw operations
|
||||||
|
*
|
||||||
|
* Return previous raw operations
|
||||||
|
*/
|
||||||
|
struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops)
|
||||||
|
{
|
||||||
|
struct pci_ops *old_ops;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
spin_lock_irqsave(&pci_lock, flags);
|
||||||
|
old_ops = bus->ops;
|
||||||
|
bus->ops = ops;
|
||||||
|
spin_unlock_irqrestore(&pci_lock, flags);
|
||||||
|
return old_ops;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(pci_bus_set_ops);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pci_read_vpd - Read one entry from Vital Product Data
|
* pci_read_vpd - Read one entry from Vital Product Data
|
||||||
|
@ -637,6 +637,7 @@ int pci_bus_write_config_word(struct pci_bus *bus, unsigned int devfn,
|
|||||||
int where, u16 val);
|
int where, u16 val);
|
||||||
int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn,
|
int pci_bus_write_config_dword(struct pci_bus *bus, unsigned int devfn,
|
||||||
int where, u32 val);
|
int where, u32 val);
|
||||||
|
struct pci_ops *pci_bus_set_ops(struct pci_bus *bus, struct pci_ops *ops);
|
||||||
|
|
||||||
static inline int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val)
|
static inline int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user