aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2015-01-21 18:14:13 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-01-21 18:14:13 +1100
commit82f3a9ec86123951bc206517c38f4581d2345c40 (patch)
treed79fb32fce4e20c2ded1f8745aaa964fa531764b
parent82f0a29720190172fe889af266ce62270bd46c10 (diff)
downloadskiboot-82f3a9ec86123951bc206517c38f4581d2345c40.zip
skiboot-82f3a9ec86123951bc206517c38f4581d2345c40.tar.gz
skiboot-82f3a9ec86123951bc206517c38f4581d2345c40.tar.bz2
Unlock rtc cache lock when cache isn't valid
Otherwise we crash with recursive lock error during boot on some systems Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--core/rtc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/rtc.c b/core/rtc.c
index 60d2d85..0c04ac0 100644
--- a/core/rtc.c
+++ b/core/rtc.c
@@ -42,8 +42,11 @@ int rtc_cache_get(struct tm *tm)
unsigned long cache_age_sec;
lock(&rtc_tod_lock);
- if (!rtc_tod_cache.valid)
+
+ if (!rtc_tod_cache.valid) {
+ unlock(&rtc_tod_lock);
return -1;
+ }
cache_age_sec = tb_to_msecs(mftb() - rtc_tod_cache.tb) / 1000;
*tm = rtc_tod_cache.tm;