forked from Minki/linux
powerpc/eeh: Remove eeh_handle_event()
The function eeh_handle_event(pe) does nothing other than switching between calling eeh_handle_normal_event(pe) and eeh_handle_special_event(). However it is only called in two places, one where pe can't be NULL and the other where it must be NULL (see eeh_event_handler()) so it does nothing but obscure the flow of control. So, remove it. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
d41ce7b1bc
commit
6870178071
@ -34,7 +34,8 @@ struct eeh_event {
|
||||
int eeh_event_init(void);
|
||||
int eeh_send_failure_event(struct eeh_pe *pe);
|
||||
void eeh_remove_event(struct eeh_pe *pe, bool force);
|
||||
void eeh_handle_event(struct eeh_pe *pe);
|
||||
bool eeh_handle_normal_event(struct eeh_pe *pe);
|
||||
void eeh_handle_special_event(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* ASM_POWERPC_EEH_EVENT_H */
|
||||
|
@ -738,9 +738,22 @@ static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus,
|
||||
* Attempts to recover the given PE. If recovery fails or the PE has failed
|
||||
* too many times, remove the PE.
|
||||
*
|
||||
* While PHB detects address or data parity errors on particular PCI
|
||||
* slot, the associated PE will be frozen. Besides, DMA's occurring
|
||||
* to wild addresses (which usually happen due to bugs in device
|
||||
* drivers or in PCI adapter firmware) can cause EEH error. #SERR,
|
||||
* #PERR or other misc PCI-related errors also can trigger EEH errors.
|
||||
*
|
||||
* Recovery process consists of unplugging the device driver (which
|
||||
* generated hotplug events to userspace), then issuing a PCI #RST to
|
||||
* the device, then reconfiguring the PCI config space for all bridges
|
||||
* & devices under this slot, and then finally restarting the device
|
||||
* drivers (which cause a second set of hotplug events to go out to
|
||||
* userspace).
|
||||
*
|
||||
* Returns true if @pe should no longer be used, else false.
|
||||
*/
|
||||
static bool eeh_handle_normal_event(struct eeh_pe *pe)
|
||||
bool eeh_handle_normal_event(struct eeh_pe *pe)
|
||||
{
|
||||
struct pci_bus *frozen_bus;
|
||||
struct eeh_dev *edev, *tmp;
|
||||
@ -942,7 +955,7 @@ hard_fail:
|
||||
* specific PE. Iterates through possible failures and handles them as
|
||||
* necessary.
|
||||
*/
|
||||
static void eeh_handle_special_event(void)
|
||||
void eeh_handle_special_event(void)
|
||||
{
|
||||
struct eeh_pe *pe, *phb_pe;
|
||||
struct pci_bus *bus;
|
||||
@ -1049,28 +1062,3 @@ static void eeh_handle_special_event(void)
|
||||
break;
|
||||
} while (rc != EEH_NEXT_ERR_NONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* eeh_handle_event - Reset a PCI device after hard lockup.
|
||||
* @pe: EEH PE
|
||||
*
|
||||
* While PHB detects address or data parity errors on particular PCI
|
||||
* slot, the associated PE will be frozen. Besides, DMA's occurring
|
||||
* to wild addresses (which usually happen due to bugs in device
|
||||
* drivers or in PCI adapter firmware) can cause EEH error. #SERR,
|
||||
* #PERR or other misc PCI-related errors also can trigger EEH errors.
|
||||
*
|
||||
* Recovery process consists of unplugging the device driver (which
|
||||
* generated hotplug events to userspace), then issuing a PCI #RST to
|
||||
* the device, then reconfiguring the PCI config space for all bridges
|
||||
* & devices under this slot, and then finally restarting the device
|
||||
* drivers (which cause a second set of hotplug events to go out to
|
||||
* userspace).
|
||||
*/
|
||||
void eeh_handle_event(struct eeh_pe *pe)
|
||||
{
|
||||
if (pe)
|
||||
eeh_handle_normal_event(pe);
|
||||
else
|
||||
eeh_handle_special_event();
|
||||
}
|
||||
|
@ -81,10 +81,10 @@ static int eeh_event_handler(void * dummy)
|
||||
pr_info("EEH: Detected PCI bus error on "
|
||||
"PHB#%x-PE#%x\n",
|
||||
pe->phb->global_number, pe->addr);
|
||||
eeh_handle_event(pe);
|
||||
eeh_handle_normal_event(pe);
|
||||
eeh_pe_state_clear(pe, EEH_PE_RECOVERING);
|
||||
} else {
|
||||
eeh_handle_event(NULL);
|
||||
eeh_handle_special_event();
|
||||
}
|
||||
|
||||
kfree(event);
|
||||
|
Loading…
Reference in New Issue
Block a user