diff options
author | Vipin K Parashar <vipin@linux.vnet.ibm.com> | 2016-07-12 02:04:57 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-07-12 13:58:40 +1000 |
commit | 11420af4cf3354382f96e408aade53fc776c544e (patch) | |
tree | 11a980b3060827922aef34e8c9dad1d9651dbb17 /hw | |
parent | e6386869af922ef9ca4321ca588fd26b584538ab (diff) | |
download | skiboot-11420af4cf3354382f96e408aade53fc776c544e.zip skiboot-11420af4cf3354382f96e408aade53fc776c544e.tar.gz skiboot-11420af4cf3354382f96e408aade53fc776c544e.tar.bz2 |
hw/xscom: Reset XSCOM engine after querying sleeping core FIR
XSCOM engine blocks subsequently after querying FIR of any
sleeping core. This causes subsequent XSCOM opertions to hang
forever due to XSCOM engine being continuously busy. Reset XSCOM
engine after querying FIR of any sleeping core.
Signed-off-by: Vipin K Parashar <vipin@linux.vnet.ibm.com>
Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xscom.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -166,8 +166,9 @@ static int64_t xscom_handle_error(uint64_t hmer, uint32_t gcid, uint32_t pcb_add gcid, pcb_addr, stat); return OPAL_BUSY; - /* CPU is asleep, don't retry */ + /* CPU is asleep, reset XSCOM engine and return */ case 2: + xscom_reset(gcid); return OPAL_WRONG_STATE; } |