Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdf8707b authored by Bob Moore's avatar Bob Moore Committed by Rafael J. Wysocki
Browse files

ACPICA: Unix application OSL: Correctly handle control-c (EINTR)

ACPICA commit dfbb87c3a96cfd007375f34a96e6f4a8ee477f97

Handle EINTR from a sem_wait operation. Ignore a control-c.

Link: https://github.com/acpica/acpica/commit/dfbb87c3


Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent b9ef2ab0
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -750,9 +750,9 @@ acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 msec_timeout)
{
	acpi_status status = AE_OK;
	sem_t *sem = (sem_t *) handle;
	int ret_val;
#ifndef ACPI_USE_ALTERNATE_TIMEOUT
	struct timespec time;
	int ret_val;
#endif

	if (!sem) {
@@ -778,7 +778,10 @@ acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 msec_timeout)

	case ACPI_WAIT_FOREVER:

		if (sem_wait(sem)) {
		while (((ret_val = sem_wait(sem)) == -1) && (errno == EINTR)) {
			continue;	/* Restart if interrupted */
		}
		if (ret_val != 0) {
			status = (AE_TIME);
		}
		break;
@@ -831,7 +834,8 @@ acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 msec_timeout)

		while (((ret_val = sem_timedwait(sem, &time)) == -1)
		       && (errno == EINTR)) {
			continue;
			continue;	/* Restart if interrupted */

		}

		if (ret_val != 0) {