All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.