From c1d5f459f697e827e2f88b1041f81888f4659a23 Mon Sep 17 00:00:00 2001 From: Cheng-Yang Chou Date: Sat, 12 Apr 2025 21:51:19 +0800 Subject: [PATCH] Improve rate limiting for rare buffer warnings Use pr_warn_ratelimited() to avoid global ratelimit interference from printk_ratelimit(), which is discouraged in the kernel due to shared state across unrelated callsites. Co-authored-by: Po-Ying Chiu --- main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 731cefa..d2a5a3c 100644 --- a/main.c +++ b/main.c @@ -96,8 +96,9 @@ static DECLARE_WAIT_QUEUE_HEAD(rx_wait); static void produce_board(void) { unsigned int len = kfifo_in(&rx_fifo, draw_buffer, sizeof(draw_buffer)); - if (unlikely(len < sizeof(draw_buffer)) && printk_ratelimit()) - pr_warn("%s: %zu bytes dropped\n", __func__, sizeof(draw_buffer) - len); + if (unlikely(len < sizeof(draw_buffer))) + pr_warn_ratelimited("%s: %zu bytes dropped\n", __func__, + sizeof(draw_buffer) - len); pr_debug("kxo: %s: in %u/%u bytes\n", __func__, len, kfifo_len(&rx_fifo)); }