|
@@ -90,6 +90,7 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_ARCH_300)
|
|
* Threads will spin in HMT_LOW until the lock bit is cleared.
|
|
* Threads will spin in HMT_LOW until the lock bit is cleared.
|
|
* r14 - pointer to core_idle_state
|
|
* r14 - pointer to core_idle_state
|
|
* r15 - used to load contents of core_idle_state
|
|
* r15 - used to load contents of core_idle_state
|
|
|
|
+ * r9 - used as a temporary variable
|
|
*/
|
|
*/
|
|
|
|
|
|
core_idle_lock_held:
|
|
core_idle_lock_held:
|
|
@@ -99,6 +100,8 @@ core_idle_lock_held:
|
|
bne 3b
|
|
bne 3b
|
|
HMT_MEDIUM
|
|
HMT_MEDIUM
|
|
lwarx r15,0,r14
|
|
lwarx r15,0,r14
|
|
|
|
+ andi. r9,r15,PNV_CORE_IDLE_LOCK_BIT
|
|
|
|
+ bne core_idle_lock_held
|
|
blr
|
|
blr
|
|
|
|
|
|
/*
|
|
/*
|