mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
If requested to Sleep for less than our hz granularity (e.g., 10 ms),
use DELAY instead of tsleep. Submitted by: peter
This commit is contained in:
parent
81b460c5eb
commit
8525ffefc2
1 changed files with 13 additions and 6 deletions
|
|
@ -243,7 +243,7 @@ AcpiOsExecuteQueue(void *arg, int pending)
|
|||
* make do with that.
|
||||
*/
|
||||
void
|
||||
AcpiOsSleep (UINT32 Seconds, UINT32 Milliseconds)
|
||||
AcpiOsSleep(UINT32 Seconds, UINT32 Milliseconds)
|
||||
{
|
||||
int timo;
|
||||
static int dummy;
|
||||
|
|
@ -251,14 +251,21 @@ AcpiOsSleep (UINT32 Seconds, UINT32 Milliseconds)
|
|||
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
|
||||
|
||||
timo = (Seconds * hz) + Milliseconds * hz / 1000;
|
||||
if (timo == 0)
|
||||
timo = 1;
|
||||
tsleep(&dummy, 0, "acpislp", timo);
|
||||
|
||||
/*
|
||||
* If requested sleep time is less than our hz resolution, use
|
||||
* DELAY instead for better granularity.
|
||||
*/
|
||||
if (timo > 0)
|
||||
tsleep(&dummy, 0, "acpislp", timo);
|
||||
else
|
||||
DELAY(Milliseconds * 1000);
|
||||
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiOsStall (UINT32 Microseconds)
|
||||
AcpiOsStall(UINT32 Microseconds)
|
||||
{
|
||||
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
|
||||
|
||||
|
|
@ -267,7 +274,7 @@ AcpiOsStall (UINT32 Microseconds)
|
|||
}
|
||||
|
||||
UINT32
|
||||
AcpiOsGetThreadId (void)
|
||||
AcpiOsGetThreadId(void)
|
||||
{
|
||||
struct proc *p;
|
||||
/* XXX do not add FUNCTION_TRACE here, results in recursive call */
|
||||
|
|
|
|||
Loading…
Reference in a new issue