mirror of
https://github.com/torvalds/linux.git
synced 2024-12-18 00:53:40 +00:00
powerpc/pseries: Cleanup on pseries_eeh_get_state()
This cleans up pseries_eeh_get_state(), no functional changes: * Return EEH_STATE_NOT_SUPPORT early when the 2nd RTAS output argument is zero to avoid nested if statements. * Skip clearing bits in the PE state represented by variable "result" to simplify the code. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
872ee2d652
commit
00ba05a12b
@ -433,42 +433,34 @@ static int pseries_eeh_get_state(struct eeh_pe *pe, int *state)
|
||||
return ret;
|
||||
|
||||
/* Parse the result out */
|
||||
result = 0;
|
||||
if (rets[1]) {
|
||||
switch(rets[0]) {
|
||||
case 0:
|
||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
||||
result |= EEH_STATE_MMIO_ACTIVE;
|
||||
result |= EEH_STATE_DMA_ACTIVE;
|
||||
break;
|
||||
case 1:
|
||||
result |= EEH_STATE_RESET_ACTIVE;
|
||||
result |= EEH_STATE_MMIO_ACTIVE;
|
||||
result |= EEH_STATE_DMA_ACTIVE;
|
||||
break;
|
||||
case 2:
|
||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
||||
result &= ~EEH_STATE_MMIO_ACTIVE;
|
||||
result &= ~EEH_STATE_DMA_ACTIVE;
|
||||
break;
|
||||
case 4:
|
||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
||||
result &= ~EEH_STATE_MMIO_ACTIVE;
|
||||
result &= ~EEH_STATE_DMA_ACTIVE;
|
||||
result |= EEH_STATE_MMIO_ENABLED;
|
||||
break;
|
||||
case 5:
|
||||
if (rets[2]) {
|
||||
if (state) *state = rets[2];
|
||||
result = EEH_STATE_UNAVAILABLE;
|
||||
} else {
|
||||
result = EEH_STATE_NOT_SUPPORT;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!rets[1])
|
||||
return EEH_STATE_NOT_SUPPORT;
|
||||
|
||||
switch(rets[0]) {
|
||||
case 0:
|
||||
result = EEH_STATE_MMIO_ACTIVE |
|
||||
EEH_STATE_DMA_ACTIVE;
|
||||
break;
|
||||
case 1:
|
||||
result = EEH_STATE_RESET_ACTIVE |
|
||||
EEH_STATE_MMIO_ACTIVE |
|
||||
EEH_STATE_DMA_ACTIVE;
|
||||
break;
|
||||
case 2:
|
||||
result = 0;
|
||||
break;
|
||||
case 4:
|
||||
result = EEH_STATE_MMIO_ENABLED;
|
||||
break;
|
||||
case 5:
|
||||
if (rets[2]) {
|
||||
if (state) *state = rets[2];
|
||||
result = EEH_STATE_UNAVAILABLE;
|
||||
} else {
|
||||
result = EEH_STATE_NOT_SUPPORT;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
result = EEH_STATE_NOT_SUPPORT;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user