Re: [PATCH] mctp i2c: check packet length before marking flow active

From: William A. Kennington III

Date: Thu Apr 23 2026 - 02:57:14 EST


On 4/22/26 20:47, Jeremy Kerr wrote:

Hi William,

Move the mctp_i2c_get_tx_flow_state() call to after the length sanity
check to ensure we only transition the flow state if we are actually
going to proceed with the transmission and locking.
Good catch, thanks!

Subject: [PATCH] mctp i2c: check packet length before marking flow active
You'll want to indicate that this is for the net tree, rather than
net-next, so something like:

Subject: [PATCH net] net: mctp i2c: check packet length [...]

Thanks, forgot the convention...


With that change:

Acked-by: Jeremy Kerr <jk@xxxxxxxxxxxxxxxxxxxx>

Out of curiosity though, how did you hit the hdr_byte_count mismatch in
the first place?

Our current theory is that we have known buggy firmware on our NVME MCTP devices and we are seeing some kind of corruption on the bus that we are going to fix in on the firmware side. We started also seeing kernel crashes along with the bad firmware symptoms, walked through ~110 kdumps and found i2c locks that were held by 2 owners (eeprom reading and the MCTP TX queue). This ended up causing deadlocks in the i2c stack that result in panics. We noticed in many of these cases that we had 10K+ BERs and 800+ NACKs in the i2c driver stats struct at the time of crash.


Cheers,


Jeremy