Re: Linux 6.19-rc1 mediatek mt7921e broke badly
From: Shuah Khan
Date: Wed Dec 31 2025 - 16:08:32 EST
On 12/30/25 21:07, Shuah Khan wrote:
On 12/30/25 21:00, Shuah Khan wrote:
On 12/30/25 18:57, Eric Biggers wrote:
On Tue, Dec 30, 2025 at 05:27:13PM -0800, Linus Torvalds wrote:
On Tue, 30 Dec 2025 at 15:57, Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> wrote:
I would recommend reverting f804a5895eba instead of trying
fix it. Then find a better way to eliminate extra newline that
shows up in dmesg when firmware build date happens to have
a newline.
Yeah. Let's revert it.
And the way to fix the extra newline is trivial: just remove it from
the "dev_info()" format string.
Our kernel printing logic will add a newline for the next line anyway
if it is missing (unless somebody explicitly uses PR_CONT).
Can whoever saw the problem confirm that just a revert and a "remove
\n from that dev_info()" fixes the output for them?
That works for me. The revert by itself makes the FORTIFY_SOURCE crash
go away and reintroduces a blank line in the log. Removing the \n from
the string passed to dev_info as well makes the blank line go away.
I just sent the revert. I will try removing \n from dev_info()
later on tomorrow.
My quick trial still showed extra line which didn't make sense
to me. More trials have to wait for tomorrow.
Hmm - there are 3 places that print build_date in mt76_connac2_load_ram()
3022 dev_info(dev->dev, "WM Firmware Version: %.10s, Build Time: %.15s\n ",
3023 hdr->fw_ver, hdr->build_date);
3051 dev_info(dev->dev, "WA Firmware Version: %.10s, Build Time: %.15s\n ",
3052 hdr->fw_ver, hdr->build_date);
3127 dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
3128 be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
The last one prints %.16s and other two do %.15s - is the fix simply
changing last one on line 3127 to print %.15s - this avoids printing
the extra \n?
The following change fixed the blank line problem on my system.
Mario, if you want to send this patch after testing on your system,
let me know. Otherwise I will send it.
==============================================
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
index fba7025ffd3f..0457712286d5 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
@@ -3019,7 +3019,7 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
}
hdr = (const void *)(fw->data + fw->size - sizeof(*hdr));
- dev_info(dev->dev, "WM Firmware Version: %.10s, Build Time: %.15s\n",
+ dev_info(dev->dev, "WM Firmware Version: %.10s, Build Time: %.15s",
hdr->fw_ver, hdr->build_date);
ret = mt76_connac_mcu_send_ram_firmware(dev, hdr, fw->data, false);
@@ -3048,7 +3048,7 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
}
hdr = (const void *)(fw->data + fw->size - sizeof(*hdr));
- dev_info(dev->dev, "WA Firmware Version: %.10s, Build Time: %.15s\n",
+ dev_info(dev->dev, "WA Firmware Version: %.10s, Build Time: %.15s",
hdr->fw_ver, hdr->build_date);
ret = mt76_connac_mcu_send_ram_firmware(dev, hdr, fw->data, true);
@@ -3124,7 +3124,7 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
}
hdr = (const void *)fw->data;
- dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
+ dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s",
be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
for (i = 0; i < be32_to_cpu(hdr->desc.n_region); i++) {
========================================
thanks,
-- Shuah