diff options
author | Ananth N Mavinakayanahalli <ananth@in.ibm.com> | 2015-02-19 15:38:17 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-02-23 13:32:00 +1100 |
commit | 4db0c1e4f67474e1af7e9a391598d2a776485edd (patch) | |
tree | 07ac0cc5599d90b8adf66b0de6ee4f7f9ce8115a /core | |
parent | 7b75c5832f55921294d1083d3083feb8ecbeb0e4 (diff) | |
download | skiboot-4db0c1e4f67474e1af7e9a391598d2a776485edd.zip skiboot-4db0c1e4f67474e1af7e9a391598d2a776485edd.tar.gz skiboot-4db0c1e4f67474e1af7e9a391598d2a776485edd.tar.bz2 |
OCC/hostservices: Queue pre-preload HBRT lid load requests
There is no guarantee that a hostservices lid load request will arrive
after we have cached the required lids. For such cases, queue the
request and service them after caching.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/hostservices.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/core/hostservices.c b/core/hostservices.c index 1c41a95..769d6f0 100644 --- a/core/hostservices.c +++ b/core/hostservices.c @@ -394,6 +394,13 @@ struct hbrt_lid { }; static LIST_HEAD(hbrt_lid_list); +static bool hbrt_lid_preload_complete = false; + +bool hservices_lid_preload_complete(void) +{ + return hbrt_lid_preload_complete; +} + /* TODO: Few of the following routines can be generalized */ static int __hservice_lid_load(uint32_t lid, void **buf, size_t *len) { @@ -468,6 +475,9 @@ void hservices_lid_preload(void) /* Currently HBRT needs only one (OCC) lid */ for (i = 0; i < num_lids; i++) __hservice_lid_preload(lid_list[i]); + + hbrt_lid_preload_complete = true; + occ_poke_load_queue(); } static int hservice_lid_load(uint32_t lid, void **buf, size_t *len) |