From aa05d85ca61d21501714d483f1d8bff8ca909dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Fri, 29 Aug 2014 01:11:34 +0200 Subject: [PATCH] pc_serial: break instead of continue in irq handler We don't want to busy loop, do we? --- .../kernel/drivers/ports/pc_serial/SerialDevice.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/add-ons/kernel/drivers/ports/pc_serial/SerialDevice.cpp b/src/add-ons/kernel/drivers/ports/pc_serial/SerialDevice.cpp index 44cbfcd482..5b80fe44e2 100644 --- a/src/add-ons/kernel/drivers/ports/pc_serial/SerialDevice.cpp +++ b/src/add-ons/kernel/drivers/ports/pc_serial/SerialDevice.cpp @@ -408,7 +408,7 @@ SerialDevice::InterruptHandler() fifoavail = 64; // we're not open... just discard the data if (!IsOpen()) - continue; + break; gTTYModule->tty_control(fDeviceTTYCookie, FIONREAD, &readable, sizeof(readable)); TRACE("%s: FIONREAD: %d\n", __FUNCTION__, readable); @@ -420,7 +420,7 @@ SerialDevice::InterruptHandler() TRACE("%s: tty_read: %d\n", __FUNCTION__, bytesLeft); if (status != B_OK) { dprintf(DRIVER_NAME ": irq: tty_read: %s\n", strerror(status)); - continue; + break; } for (i = 0; i < bytesLeft; i++) { @@ -440,12 +440,12 @@ SerialDevice::InterruptHandler() } // we're not open... just discard the data if (!IsOpen()) - continue; + break; // we shouldn't block here but it's < 256 bytes anyway status = gTTYModule->tty_write(fDeviceTTYCookie, buffer, &i); if (status != B_OK) { dprintf(DRIVER_NAME ": irq: tty_write: %s\n", strerror(status)); - continue; + break; } break; case IIR_RLS: @@ -459,7 +459,7 @@ SerialDevice::InterruptHandler() // modem signals changed msr = ReadReg8(MSR); if (!IsOpen()) - continue; + break; if (msr & MSR_DDCD) SignalControlLineState(TTYHWDCD, msr & MSR_DCD); if (msr & MSR_DCTS)