Re: [PATCH v2 ath-next 2/2] wifi: ath11k: fix HTC rx insufficient length
From: Jeff Johnson
Date: Tue Mar 11 2025 - 11:26:28 EST
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?