[PATCH v2 4/4] soc: apple: rtkit: rate limit malformed syslog warnings
From: Laxman Acharya Padhya <hidden>
Date: 2026-08-24 08:27:08
Also in:
asahi, lkml, stable
Subsystem:
arm/apple machine support, the rest · Maintainers:
Sven Peter, Janne Grunau, Linus Torvalds
The coprocessor can repeatedly send malformed syslog messages and flood
the kernel log with warnings. Use the rate-limited warning helper for
the validation failures in the syslog receive path.
Fixes: 9bd1d9a0d8bb ("soc: apple: Add RTKit IPC library")
Cc: stable@vger.kernel.org
Signed-off-by: Laxman Acharya Padhya <redacted>
---
drivers/soc/apple/rtkit.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/soc/apple/rtkit.c b/drivers/soc/apple/rtkit.c
index da766df5a6d7..e70e3d2cfa08 100644
--- a/drivers/soc/apple/rtkit.c
+++ b/drivers/soc/apple/rtkit.c@@ -439,7 +439,8 @@ static void apple_rtkit_syslog_rx_init(struct apple_rtkit *rtk, u64 msg) rtk->syslog_msg_size = FIELD_GET(APPLE_RTKIT_SYSLOG_MSG_SIZE, msg); if (rtk->syslog_msg_size == 0) { - dev_warn(rtk->dev, "RTKit: syslog msg_size is zero\n"); + dev_warn_ratelimited(rtk->dev, + "RTKit: syslog msg_size is zero\n"); return; }
@@ -464,26 +465,24 @@ static void apple_rtkit_syslog_rx_log(struct apple_rtkit *rtk, u64 msg) int msglen; if (!rtk->syslog_msg_buffer || rtk->syslog_msg_size == 0) { - dev_warn( - rtk->dev, - "RTKit: received syslog message but no syslog_msg_buffer\n"); + dev_warn_ratelimited(rtk->dev, + "RTKit: received syslog message but no syslog_msg_buffer\n"); goto done; } if (!rtk->syslog_buffer.size) { - dev_warn( - rtk->dev, - "RTKit: received syslog message but syslog_buffer.size is zero\n"); + dev_warn_ratelimited(rtk->dev, + "RTKit: received syslog message but syslog_buffer.size is zero\n"); goto done; } if (!rtk->syslog_buffer.buffer && !rtk->syslog_buffer.iomem) { - dev_warn( - rtk->dev, - "RTKit: received syslog message but no syslog_buffer.buffer or syslog_buffer.iomem\n"); + dev_warn_ratelimited(rtk->dev, + "RTKit: received syslog message but no syslog_buffer.buffer or syslog_buffer.iomem\n"); goto done; } if (idx >= rtk->syslog_n_entries) { - dev_warn(rtk->dev, "RTKit: syslog index %d out of range\n", - idx); + dev_warn_ratelimited(rtk->dev, + "RTKit: syslog index %d out of range\n", + idx); goto done; }
--
2.51.2