Skip to content

Commit 5d2e834

Browse files
committed
Merge tag 'asahi-soc-rtkit-6.4' of https://github.com/AsahiLinux/linux into soc/drivers
Apple SoC RTKit updates for 6.4. Just one bugfix and one improvement to how forwarded syslogs are sent to dmesg. * tag 'asahi-soc-rtkit-6.4' of https://github.com/AsahiLinux/linux: soc: apple: rtkit: Crop syslog messages soc: apple: rtkit: Fix buffer address field width Link: https://lore.kernel.org/r/0dbd2dc1-6a2c-5b21-354b-d8314937e8e7@marcan.st Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents 283480f + bdfe6de commit 5d2e834

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

drivers/soc/apple/rtkit.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ enum {
5555

5656
#define APPLE_RTKIT_BUFFER_REQUEST 1
5757
#define APPLE_RTKIT_BUFFER_REQUEST_SIZE GENMASK_ULL(51, 44)
58-
#define APPLE_RTKIT_BUFFER_REQUEST_IOVA GENMASK_ULL(41, 0)
58+
#define APPLE_RTKIT_BUFFER_REQUEST_IOVA GENMASK_ULL(43, 0)
5959

6060
#define APPLE_RTKIT_SYSLOG_TYPE GENMASK_ULL(59, 52)
6161

@@ -409,11 +409,17 @@ static void apple_rtkit_syslog_rx_init(struct apple_rtkit *rtk, u64 msg)
409409
rtk->syslog_n_entries, rtk->syslog_msg_size);
410410
}
411411

412+
static bool should_crop_syslog_char(char c)
413+
{
414+
return c == '\n' || c == '\r' || c == ' ' || c == '\0';
415+
}
416+
412417
static void apple_rtkit_syslog_rx_log(struct apple_rtkit *rtk, u64 msg)
413418
{
414419
u8 idx = msg & 0xff;
415420
char log_context[24];
416421
size_t entry_size = 0x20 + rtk->syslog_msg_size;
422+
int msglen;
417423

418424
if (!rtk->syslog_msg_buffer) {
419425
dev_warn(
@@ -446,7 +452,13 @@ static void apple_rtkit_syslog_rx_log(struct apple_rtkit *rtk, u64 msg)
446452
rtk->syslog_msg_size);
447453

448454
log_context[sizeof(log_context) - 1] = 0;
449-
rtk->syslog_msg_buffer[rtk->syslog_msg_size - 1] = 0;
455+
456+
msglen = rtk->syslog_msg_size - 1;
457+
while (msglen > 0 &&
458+
should_crop_syslog_char(rtk->syslog_msg_buffer[msglen - 1]))
459+
msglen--;
460+
461+
rtk->syslog_msg_buffer[msglen] = 0;
450462
dev_info(rtk->dev, "RTKit: syslog message: %s: %s\n", log_context,
451463
rtk->syslog_msg_buffer);
452464

0 commit comments

Comments
 (0)