aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-06-24 09:54:57 -0500
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-06-26 14:28:58 +1000
commit8019007766da1a09b0280d37ab9e5aa4df396e7f (patch)
tree67330b664e20fecb36cbecb8607fc1cf96399706
parent4df53124cb34de45dce045008e98c3477299050f (diff)
downloadskiboot-8019007766da1a09b0280d37ab9e5aa4df396e7f.zip
skiboot-8019007766da1a09b0280d37ab9e5aa4df396e7f.tar.gz
skiboot-8019007766da1a09b0280d37ab9e5aa4df396e7f.tar.bz2
capp: Fix hang when CAPP microcode LID is missing on FSP machine
When the LID is absent, we fail early with an error from start_preload_resource. In that case, capp_ucode_info.load_result isn't set properly causing a subsequent capp_lid_download() to call wait_for_resource_loaded() on something that isn't being loaded, thus hanging. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/capp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/capp.c b/hw/capp.c
index 28a0a4e..eeaa4ac 100644
--- a/hw/capp.c
+++ b/hw/capp.c
@@ -100,8 +100,10 @@ int preload_capp_ucode(void)
capp_ucode_info.lid,
&capp_ucode_info.size);
- if (ret != OPAL_SUCCESS)
+ if (ret != OPAL_SUCCESS) {
prerror("CAPI: Failed to preload resource %d\n", ret);
+ capp_ucode_info.load_result = ret;
+ }
end:
return ret;