[PATCH v2 4/4] soc: apple: rtkit: rate limit malformed syslog warnings
Laxman Acharya Padhya <[email protected]>
| Newsgroups | dev.linux.lists.asahi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <fa4dd49adf1579d6fa378e4115d4e678e8dc12a6.1787559303.git.acharyalaxman8848@gmail.com> |
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: [email protected]
Signed-off-by: Laxman Acharya Padhya <[email protected]>
---
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