wifi: mt76: Strip whitespace from build ddate
Subsystems (2)
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
@@ -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
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