[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c0cdcaf2-655b-4d22-a949-1519c552e6a4@oss.qualcomm.com>
Date: Tue, 11 Mar 2025 08:20:33 -0700
From: Jeff Johnson <jeff.johnson@....qualcomm.com>
To: Miaoqing Pan <quic_miaoqing@...cinc.com>, Johan Hovold <johan@...nel.org>
Cc: ath11k@...ts.infradead.org, linux-wireless@...r.kernel.org,
linux-kernel@...r.kernel.org, johan+linaro@...nel.org
Subject: Re: [PATCH v2 ath-next 2/2] wifi: ath11k: fix HTC rx insufficient
length
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?
Powered by blists - more mailing lists