mirror of
https://github.com/torvalds/linux.git
synced 2024-11-14 08:02:07 +00:00
powerpc/eeh: Introduce global mutex
The patch introduces global mutex for EEH so that the core data structures can be protected by that. Also, 2 inline functions are exported for that: eeh_lock() and eeh_unlock(). Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
968f968f9b
commit
646a849940
@ -146,6 +146,17 @@ struct eeh_ops {
|
||||
|
||||
extern struct eeh_ops *eeh_ops;
|
||||
extern int eeh_subsystem_enabled;
|
||||
extern struct mutex eeh_mutex;
|
||||
|
||||
static inline void eeh_lock(void)
|
||||
{
|
||||
mutex_lock(&eeh_mutex);
|
||||
}
|
||||
|
||||
static inline void eeh_unlock(void)
|
||||
{
|
||||
mutex_unlock(&eeh_mutex);
|
||||
}
|
||||
|
||||
/*
|
||||
* Max number of EEH freezes allowed before we consider the device
|
||||
@ -206,6 +217,10 @@ static inline void eeh_add_device_tree_early(struct device_node *dn) { }
|
||||
static inline void eeh_add_device_tree_late(struct pci_bus *bus) { }
|
||||
|
||||
static inline void eeh_remove_bus_device(struct pci_dev *dev) { }
|
||||
|
||||
static inline void eeh_lock(void) { }
|
||||
static inline void eeh_unlock(void) { }
|
||||
|
||||
#define EEH_POSSIBLE_ERROR(val, type) (0)
|
||||
#define EEH_IO_ERROR_VALUE(size) (-1UL)
|
||||
#endif /* CONFIG_EEH */
|
||||
|
@ -92,6 +92,9 @@ struct eeh_ops *eeh_ops = NULL;
|
||||
int eeh_subsystem_enabled;
|
||||
EXPORT_SYMBOL(eeh_subsystem_enabled);
|
||||
|
||||
/* Global EEH mutex */
|
||||
DEFINE_MUTEX(eeh_mutex);
|
||||
|
||||
/* Lock to avoid races due to multiple reports of an error */
|
||||
static DEFINE_RAW_SPINLOCK(confirm_error_lock);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user