diff options
author | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-11-23 11:45:59 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-11-24 16:47:16 +1100 |
commit | 2981a7bfc9dc3b1b642a868b09a75d011c49063a (patch) | |
tree | 1872a34ff102d1fdf1269ca3c7f3f8e982c26c76 /core/platform.c | |
parent | ecac29429861a912bd061df799dbc54493966f98 (diff) | |
download | skiboot-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.c | 4 |
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", |