On 3/11/2025 1:29 AM, Miaoqing Pan wrote: > On 3/10/2025 6:09 PM, Johan Hovold wrote: >> I'm still waiting for feedback from one user that can reproduce the >> ring-buffer corruption very easily, but another user mentioned seeing >> multiple zero-length descriptor warnings over the weekend when running >> with this patch: >> >> ath11k_pci 0006:01:00.0: rxed invalid length (nbytes 0, max 2048) >> >> Are there ever any valid reasons for seeing a zero-length descriptor >> (i.e. unrelated to the race at hand)? IIUC the warning would only be >> printed when processing such descriptors a second time (i.e. when >> is_desc_len0 is set). >> > > That's exactly the logic, only can see the warning in a second time. For > the first time, ath12k_ce_completed_recv_next() returns '-EIO'. That didn't answer Johan's first question: Are there ever any valid reasons for seeing a zero-length descriptor? We have an issue that there is a race condition where hardware updates the pointer before it has filled all the data. The current solution is just to read the data a second time. But if that second read also occurs before hardware has updated the data, then the issue isn't fixed. So should there be some forced delay before we read a second time? Or should we attempt to read more times?