Skip to contentSkip to conversation

wifi: mt76: Strip whitespace from build ddate

PATCH In review Mario Limonciello (AMD) 2 participants 2 messages Nov 20, 2025 – Nov 21, 2025

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 wifi: mt76: Strip whitespace from build ddate

On systems I have with mt7925 cards I've been noticing a blank line in my kernel logs. IE:

```
[   17.294105] mt7925e 0000:c3:00.0: HW/SW Version: 0x8a108a10, Build Time: 20250721232852a

[   17.314233] r8169 0000:c4:00.0 enp196s0f0: Link is Down
```

This is because the build_date from the header has a newline character as does the dev_info() print. As the firmware isn't guaranteed to always have a newline but the print is, copy the firmware build date to a temporary variable and strip any whitespace from it before showing it in the logs.

---
 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +5 -1
index fc3e6728fcfbf..eeba6deb100c1 100644
@@ -3101,6 +3101,7 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
 	int i, ret, sem, max_len = mt76_is_sdio(dev) ? 2048 : 4096;
 	const struct mt76_connac2_patch_hdr *hdr;
 	const struct firmware *fw = NULL;
+	char build_date[17];
 
 	sem = mt76_connac_mcu_patch_sem_ctrl(dev, true);
 	switch (sem) {
@@ -3124,8 +3125,11 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
 	}
 
 	hdr = (const void *)fw->data;
+	strscpy(build_date, hdr->build_date, sizeof(build_date));
+	build_date[16] = '\0';
+	strim(build_date);
 	dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
-		 be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
+		 be32_to_cpu(hdr->hw_sw_ver), build_date);
 
 	for (i = 0; i < be32_to_cpu(hdr->desc.n_region); i++) {
 		struct mt76_connac2_patch_sec *sec;
Signature · 1 line
2.43.0
#1 lore raw

drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name) · line 3129

Quoted 6 lines · Mario Limonciello (AMD)
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +2 -0
@@ -3124,8 +3125,11 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
        }
 
        hdr = (const void *)fw->data;
+       strscpy(build_date, hdr->build_date, sizeof(build_date));
+       build_date[16] = '\0';

As comment of strscpy(), NULL terminator always presents.

* Copy the source string @src, or as much of it as fits, into the
* destination @dst buffer. The behavior is undefined if the string
* buffers overlap. The destination @dst buffer is always NUL terminated,
* unless it's zero-sized.

Quoted 10 lines
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +2 -2
+       strim(build_date);
        dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
-                be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
+                be32_to_cpu(hdr->hw_sw_ver), build_date);
 
        for (i = 0; i < be32_to_cpu(hdr->desc.n_region); i++) {
                struct mt76_connac2_patch_sec *sec;
--

2.43.0