Call any pending software interrupts after the CPU wakes up from idle sleep.
commit4a245aa326c2a3e92ca441679f82848e23928e10
authorneil <neil@fb15a70f-31f2-0310-bbcc-cdcc74a49acc>
Mon, 5 Mar 2018 00:58:49 +0000 (5 00:58 +0000)
committerneil <neil@fb15a70f-31f2-0310-bbcc-cdcc74a49acc>
Mon, 5 Mar 2018 00:58:49 +0000 (5 00:58 +0000)
tree3e2544671a9184f30023e9f4f47026d59ac8c89f
parent6baa4acde4ff340a156174d5bd1b80d794fbb76a
Call any pending software interrupts after the CPU wakes up from idle sleep.
This was previously done when waking from sleep in cpu_Dispatch() before the
idle task was introduced. It is needed when sleep is interrupted by a
hardware interrupt whose handler subsequently triggers a software interrupt,
as the kernel's interrupt handler only calls software interrupts at exit when
returning to user mode: sleep is initiated in kernel mode, so after sleep is
interrupted, we will return to kernel mode, and the softint will be delayed).

The problem could probably also be solved by calling software interrupts when
returning from traps (e.g from the CPU sleep syscall), but there may be a
good reason why that isn't done.

This fixes stuttering in HDAudio playback when ACPI is enabled.

git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@55061 fb15a70f-31f2-0310-bbcc-cdcc74a49acc
arch/all-pc/kernel/acpi_pm.c