From 49dbac8e551c5111cb8f5a8dd8fda366b4a577ee Mon Sep 17 00:00:00 2001 From: Matheus Date: Sat, 21 Sep 2024 18:34:36 -0300 Subject: [PATCH] acpi: fix use of unitialized mutex --- kernel-src/io/acpi/dev.c | 1 + kernel-src/io/tty.c | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel-src/io/acpi/dev.c b/kernel-src/io/acpi/dev.c index d83edb68..73e604fc 100644 --- a/kernel-src/io/acpi/dev.c +++ b/kernel-src/io/acpi/dev.c @@ -112,5 +112,6 @@ static devops_t acpiops = { void acpi_initdevice(void) { __assert(devfs_register(&acpiops, "acpi", V_TYPE_CHDEV, DEV_MAJOR_ACPI, 0, 0600, NULL) == 0); __assert(ringbuffer_init(&ringbuffer, 64) == 0); + MUTEX_INIT(&mutex); POLL_INITHEADER(&pollheader); } diff --git a/kernel-src/io/tty.c b/kernel-src/io/tty.c index 01825c64..870125c3 100644 --- a/kernel-src/io/tty.c +++ b/kernel-src/io/tty.c @@ -256,14 +256,15 @@ static int read(int minor, iovec_iterator_t *iovec_iterator, size_t size, uintma } error = poll_dowait(&desc, effectivetimeout); + + poll_leave(&desc); + poll_destroydesc(&desc); + if (error == 0 && (desc.event == NULL || (desc.event && desc.event->revents == 0))) { // timed out! break; } - poll_leave(&desc); - poll_destroydesc(&desc); - if (error) goto leave; }