aboutsummaryrefslogtreecommitdiff
path: root/core/platform.c
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2016-11-23 11:45:59 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-11-24 16:47:16 +1100
commit2981a7bfc9dc3b1b642a868b09a75d011c49063a (patch)
tree1872a34ff102d1fdf1269ca3c7f3f8e982c26c76 /core/platform.c
parentecac29429861a912bd061df799dbc54493966f98 (diff)
downloadskiboot-2981a7bfc9dc3b1b642a868b09a75d011c49063a.zip
skiboot-2981a7bfc9dc3b1b642a868b09a75d011c49063a.tar.gz
skiboot-2981a7bfc9dc3b1b642a868b09a75d011c49063a.tar.bz2
wait_for_resource_loaded: don't needlessly sleep for 5ms
We would needlessly time_wait_ms_nopoll(5) if opal_run_pollers() managed to crank things enough to load the requested resource. Instead of needlessly sleeping, check the result of resource_loaded() *before* going to sleep for a bit. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/platform.c')
-rw-r--r--core/platform.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/platform.c b/core/platform.c
index 5878164..ba0636d 100644
--- a/core/platform.c
+++ b/core/platform.c
@@ -205,9 +205,11 @@ int wait_for_resource_loaded(enum resource_id id, uint32_t idx)
while(r == OPAL_BUSY) {
opal_run_pollers();
+ r = resource_loaded(id, idx);
+ if (r != OPAL_BUSY)
+ break;
time_wait_ms_nopoll(5);
waited+=5;
- r = resource_loaded(id, idx);
}
prlog(PR_TRACE, "PLATFORM: wait_for_resource_loaded %x/%x %u ms\n",