From 71eb27f4f3ed6747c189818b50a5e84841783a6b Mon Sep 17 00:00:00 2001 From: acevest Date: Mon, 26 Jan 2026 15:59:29 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8DAP=E5=9C=A8=E8=B0=83=E7=94=A8p?= =?utf8?q?rint=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91=E6=97=B6=E8=AF=AF?= =?utf8?q?=E4=BF=AE=E6=94=B9=E4=BA=86BSP=E7=94=A8=E5=88=B0=E7=9A=84preempt?= =?utf8?q?=5Fcount=E5=8F=98=E9=87=8F=E5=AF=BC=E8=87=B4=E4=B8=8D=E8=83=BD?= =?utf8?q?=E6=AD=A3=E5=B8=B8=E5=88=87=E6=8D=A2=E8=BF=9B=E7=A8=8B=E7=9A=84?= =?utf8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- kernel/printk.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/printk.c b/kernel/printk.c index 635820d..8966a61 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -55,11 +55,15 @@ extern tty_t* const monitor_tty; int printlo(unsigned int xpos, unsigned int ypos, const char* fmtstr, ...) { static char plobuf[1024]; char* args = (char*)(((char*)&fmtstr) + 4); - ENTER_CRITICAL_ZONE(EFLAGS); + + unsigned long eflags; + irq_save(eflags); + int size = vsprintf(plobuf, fmtstr, args); tty_write_at(monitor_tty, xpos, ypos, plobuf, (size_t)size); - LEAVE_CRITICAL_ZONE(EFLAGS); + irq_restore(eflags); + return 0; } -- 2.47.0