[PATCH] tty: n_tty: convert the full VTIME interval to jiffies
From: Hungyu Lin
Date: Wed Oct 28 2026 - 20:21:21 EST
VTIME specifies a timeout in tenths of a second, but n_tty_read() divides
HZ by 10 before multiplying by VTIME. For supported HZ values that are
not divisible by 10, this truncates each decisecond and shortens the
requested interval. For example, HZ=128 and VTIME=40 produce 480 ticks
instead of 512 ticks for four seconds.
Convert the full interval to milliseconds before calling
msecs_to_jiffies(), for both the read and inter-byte timeouts. This
preserves zero VTIME and avoids accumulating the initial division's
rounding loss.
Signed-off-by: Hungyu Lin <dennylin0707@xxxxxxxxx>
---
drivers/tty/n_tty.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index e6a0f5b40d0a..e485cf36dfa1 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -2219,9 +2219,9 @@ static ssize_t n_tty_read(struct tty_struct *tty, struct file *file, u8 *kbuf,
if (!ldata->icanon) {
minimum = MIN_CHAR(tty);
if (minimum) {
- time = (HZ / 10) * TIME_CHAR(tty);
+ time = msecs_to_jiffies(100 * TIME_CHAR(tty));
} else {
- timeout = (HZ / 10) * TIME_CHAR(tty);
+ timeout = msecs_to_jiffies(100 * TIME_CHAR(tty));
minimum = 1;
}
}
--
2.43.0