Page MenuHomeFreeBSD

D6352.id16301.diff
No OneTemporary

D6352.id16301.diff

Index: sys/dev/acpica/Osd/OsdSynch.c
===================================================================
--- sys/dev/acpica/Osd/OsdSynch.c
+++ sys/dev/acpica/Osd/OsdSynch.c
@@ -188,6 +188,23 @@
}
break;
default:
+ if (cold) {
+ /*
+ * Just spin polling the semaphore once a
+ * millisecond.
+ */
+ while (!ACPISEM_AVAIL(as, Units)) {
+ if (Timeout == 0) {
+ status = AE_TIME;
+ break;
+ }
+ Timeout--;
+ mtx_unlock(&as->as_lock);
+ DELAY(1000);
+ mtx_lock(&as->as_lock);
+ }
+ break;
+ }
tmo = timeout2hz(Timeout);
while (!ACPISEM_AVAIL(as, Units)) {
prevtick = ticks;
@@ -381,6 +398,23 @@
}
break;
default:
+ if (cold) {
+ /*
+ * Just spin polling the mutex once a
+ * millisecond.
+ */
+ while (!ACPIMTX_AVAIL(am)) {
+ if (Timeout == 0) {
+ status = AE_TIME;
+ break;
+ }
+ Timeout--;
+ mtx_unlock(&am->am_lock);
+ DELAY(1000);
+ mtx_lock(&am->am_lock);
+ }
+ break;
+ }
tmo = timeout2hz(Timeout);
while (!ACPIMTX_AVAIL(am)) {
prevtick = ticks;

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 19, 9:19 AM (16 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29958025
Default Alt Text
D6352.id16301.diff (1 KB)

Event Timeline