Linux bluetooth development
 help / color / mirror / Atom feed
From: bugzilla-daemon@kernel.org
To: linux-bluetooth@vger.kernel.org
Subject: [Bug 222164] MT7902 Bluetooth: firmware coredump after ~10h uptime, then "subsys reset fail" and permanent USB disconnect
Date: Wed, 21 Oct 2026 04:50:56 +0000	[thread overview]
Message-ID: <bug-222164-62941-VmpMye7u7E@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-222164-62941@https.bugzilla.kernel.org/>

https://bugzilla.kernel.org/show_bug.cgi?id=222164

hongweifei@cyue.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|MT7902 Bluetooth: firmware  |MT7902 Bluetooth: firmware
                   |coredump after ~10h uptime, |coredump after ~10h uptime,
                   |then "subsys reset fail"    |then &quot;subsys reset
                   |and permanent USB           |fail&quot; and permanent
                   |disconnect                  |USB disconnect

--- Comment #3 from hongweifei@cyue.net ---
New data: captured a third occurrence with btmon running, and it revealed
something
much more specific than the original report.

First, an important correction to the timing pattern in my initial report: this
time
the controller died after only 2h38m43s, not ~10h.

    #1  2026-10-19 10:19:24 -> 20:21:44   = 10h02m20s
    #2  2026-10-20 09:50:30 -> 20:01:29   = 10h10m59s
    #3  2026-10-21 10:02:35 -> 12:41:18   =  2h38m43s   <-- much shorter

The difference for #3: btmon was running for the whole session (I started a
capture
at 10:02:35 to collect data for this report). btmon subscribes to all HCI
events, so
firmware event traffic through the driver was higher than usual. I cannot prove
causation, but the correlation is worth noting: the crash came ~4x sooner while
the
monitor was attached. If a firmware-side counter or queue related to diagnostic
events feeds into this, that would fit.

## What the capture shows

Immediately before the coredump, the controller emits a massive flood of
MediaTek **Vendor Diagnostic** events:

    12:41:16.374569   flood starts
                     -> 11348 Vendor Diagnostic events in 1.65 seconds
                     -> ~6878 events/second
                     -> final packet: len 41047 (41 KB in one event;
                        normal HCI events here are tens to ~200 bytes)
    12:41:18.025926   Bluetooth: hci0: Mediatek coredump end
    12:41:28.338162   Bluetooth: hci0: Can't get device id, subsys reset fail.
    12:41:28.370      MGMT Close Index / Delete Index  (controller gone)

Two further observations:

1. **Normal traffic stopped ~20 minutes before the crash.** The last ordinary
ACL
   packet is at 12:20:44.820571; between then and 12:41:18 there is nothing but
   diagnostic events. So the firmware appears to have entered an abnormal state
   well before it finally died, rather than failing instantly.

2. **2372 lines inside the flood contain 16 consecutive zero bytes** (all-zero
   payload fragments). I have not confirmed what they mean; possibly invalid
memory
   being drained, possibly benign padding in diagnostic records.

Sample payload from the flood (first bytes of one 202-byte event):

    6f fc c6 00 5b f0 1a 41 00 2c 51 74 dc 31 5d 5b
    f4 1a 41 00 2c b1 54 bd bf 5d 5b f8 1a 41 00 2c
    0a f2 83 2a 5d 5b fc 1a 41 00 2c 19 a6 39 7b 5d
    ...

This looks more like a memory dump than a meaningful diagnostic stream.

## Attachments

- `mt7902-crash3-analysis.txt` — the numbers above, in one place
- `mt7902-crash3-vendor-flood.log` — excerpt of the flood: first 40 lines at
  12:41:16.374, a middle sample, and the last 300 lines through
  12:41:28.468 (close/delete index). Kept small on purpose.

The full capture is 86 MB of btmon text plus a 15 MB btsnoop; I can upload
those
somewhere if the excerpt is not enough. My question: is there anything specific
in
the Vendor Diagnostic stream you would want extracted? I do not know the
MediaTek
diagnostic event format, so I can pull whatever subset is useful.

One more note: after `subsys reset fail`, nothing recovers the controller short
of
a reboot — details already in my original report.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are the assignee for the bug.

  parent reply	other threads:[~2026-10-21  4:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-21  1:56 [Bug 222164] New: MT7902 Bluetooth: firmware coredump after ~10h uptime, then "subsys reset fail" and permanent USB disconnect bugzilla-daemon
2026-10-21  1:56 ` [Bug 222164] " bugzilla-daemon
2026-10-21  1:56 ` bugzilla-daemon
2026-10-21  4:50 ` bugzilla-daemon [this message]
2026-10-21  4:51 ` [Bug 222164] MT7902 Bluetooth: firmware coredump after ~10h uptime, then &quot;subsys reset fail&quot; " bugzilla-daemon
2026-10-21  4:51 ` bugzilla-daemon
2026-10-21  4:56 ` [Bug 222164] MT7902 Bluetooth: firmware coredump after ~10h uptime, then &amp;quot;subsys reset fail&amp;quot; " bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-222164-62941-VmpMye7u7E@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox