@ -100,7 +100,7 @@ int eeh_subsystem_enabled;
EXPORT_SYMBOL ( eeh_subsystem_enabled ) ;
/* Lock to avoid races due to multiple reports of an error */
static DEFINE_SPINLOCK ( confirm_error_lock ) ;
static DEFINE_RAW_ SPINLOCK ( confirm_error_lock ) ;
/* Buffer for reporting slot-error-detail rtas calls. Its here
* in BSS , and not dynamically alloced , so that it ends up in
@ -436,7 +436,7 @@ static void __eeh_clear_slot(struct device_node *parent, int mode_flag)
void eeh_clear_slot ( struct device_node * dn , int mode_flag )
{
unsigned long flags ;
spin_lock_irqsave ( & confirm_error_lock , flags ) ;
raw_ spin_lock_irqsave( & confirm_error_lock , flags ) ;
dn = find_device_pe ( dn ) ;
@ -447,7 +447,7 @@ void eeh_clear_slot (struct device_node *dn, int mode_flag)
PCI_DN ( dn ) - > eeh_mode & = ~ mode_flag ;
PCI_DN ( dn ) - > eeh_check_count = 0 ;
__eeh_clear_slot ( dn , mode_flag ) ;
spin_unlock_irqrestore ( & confirm_error_lock , flags ) ;
raw_ spin_unlock_irqrestore( & confirm_error_lock , flags ) ;
}
/**
@ -506,7 +506,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev)
* in one slot might report errors simultaneously , and we
* only want one error recovery routine running .
*/
spin_lock_irqsave ( & confirm_error_lock , flags ) ;
raw_ spin_lock_irqsave( & confirm_error_lock , flags ) ;
rc = 1 ;
if ( pdn - > eeh_mode & EEH_MODE_ISOLATED ) {
pdn - > eeh_check_count + + ;
@ -575,7 +575,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev)
* with other functions on this device , and functions under
* bridges . */
eeh_mark_slot ( dn , EEH_MODE_ISOLATED ) ;
spin_unlock_irqrestore ( & confirm_error_lock , flags ) ;
raw_ spin_unlock_irqrestore( & confirm_error_lock , flags ) ;
eeh_send_failure_event ( dn , dev ) ;
@ -586,7 +586,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev)
return 1 ;
dn_unlock :
spin_unlock_irqrestore ( & confirm_error_lock , flags ) ;
raw_ spin_unlock_irqrestore( & confirm_error_lock , flags ) ;
return rc ;
}
@ -1064,7 +1064,7 @@ void __init eeh_init(void)
struct device_node * phb , * np ;
struct eeh_early_enable_info info ;
spin_lock_init ( & confirm_error_lock ) ;
raw_ spin_lock_init( & confirm_error_lock ) ;
spin_lock_init ( & slot_errbuf_lock ) ;
np = of_find_node_by_path ( " /rtas " ) ;