diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c index d2a7d23fae3..cc734e0a84b 100644 --- a/drivers/serial/serial.c +++ b/drivers/serial/serial.c @@ -604,6 +604,11 @@ static int uart_tcdrain(FAR uart_dev_t *dev, if (elapsed >= timeout) { nxmutex_unlock(&dev->xmit.lock); + if (cancelable) + { + leave_cancellation_point(); + } + return -ETIMEDOUT; } }