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;
|
return ret;
|
||||||
|
|
||||||
/* Parse the result out */
|
/* Parse the result out */
|
||||||
result = 0;
|
if (!rets[1])
|
||||||
if (rets[1]) {
|
return EEH_STATE_NOT_SUPPORT;
|
||||||
switch(rets[0]) {
|
|
||||||
case 0:
|
switch(rets[0]) {
|
||||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
case 0:
|
||||||
result |= EEH_STATE_MMIO_ACTIVE;
|
result = EEH_STATE_MMIO_ACTIVE |
|
||||||
result |= EEH_STATE_DMA_ACTIVE;
|
EEH_STATE_DMA_ACTIVE;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
result |= EEH_STATE_RESET_ACTIVE;
|
result = EEH_STATE_RESET_ACTIVE |
|
||||||
result |= EEH_STATE_MMIO_ACTIVE;
|
EEH_STATE_MMIO_ACTIVE |
|
||||||
result |= EEH_STATE_DMA_ACTIVE;
|
EEH_STATE_DMA_ACTIVE;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
result = 0;
|
||||||
result &= ~EEH_STATE_MMIO_ACTIVE;
|
break;
|
||||||
result &= ~EEH_STATE_DMA_ACTIVE;
|
case 4:
|
||||||
break;
|
result = EEH_STATE_MMIO_ENABLED;
|
||||||
case 4:
|
break;
|
||||||
result &= ~EEH_STATE_RESET_ACTIVE;
|
case 5:
|
||||||
result &= ~EEH_STATE_MMIO_ACTIVE;
|
if (rets[2]) {
|
||||||
result &= ~EEH_STATE_DMA_ACTIVE;
|
if (state) *state = rets[2];
|
||||||
result |= EEH_STATE_MMIO_ENABLED;
|
result = EEH_STATE_UNAVAILABLE;
|
||||||
break;
|
} else {
|
||||||
case 5:
|
|
||||||
if (rets[2]) {
|
|
||||||
if (state) *state = rets[2];
|
|
||||||
result = EEH_STATE_UNAVAILABLE;
|
|
||||||
} else {
|
|
||||||
result = EEH_STATE_NOT_SUPPORT;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
result = EEH_STATE_NOT_SUPPORT;
|
result = EEH_STATE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
|
default:
|
||||||
result = EEH_STATE_NOT_SUPPORT;
|
result = EEH_STATE_NOT_SUPPORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user