mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Miaoqing Pan <quic_miaoqing@quicinc.com>
To: Johan Hovold <johan@kernel.org>
Cc: Jeff Johnson <jeff.johnson@oss.qualcomm.com>,
	<ath11k@lists.infradead.org>, <linux-wireless@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <johan+linaro@kernel.org>
Subject: Re: [PATCH v2 ath-next 2/2] wifi: ath11k: fix HTC rx insufficient length
Date: Mon, 17 Mar 2025 13:52:15 +0800	[thread overview]
Message-ID: <ecfe850c-b263-4bee-b888-c34178e690fc@quicinc.com> (raw)
In-Reply-To: <Z9PjjDFBuSJ7exVj@hovoldconsulting.com>



On 3/14/2025 4:06 PM, Johan Hovold wrote:
> On Fri, Mar 14, 2025 at 09:01:36AM +0800, Miaoqing Pan wrote:
>> On 3/14/2025 12:14 AM, Johan Hovold wrote:
>>> On Thu, Mar 13, 2025 at 09:31:56PM +0800, Miaoqing Pan wrote:
>>>> On 3/13/2025 12:43 AM, Johan Hovold wrote:
> 
>>>>> +	/* Make sure descriptor is read after the head pointer. */
>>>>> +	dma_rmb();
>>>>> +
>>>>>     	*nbytes = ath11k_hal_ce_dst_status_get_length(desc);
>>>>>     	if (*nbytes == 0) {
>>>>> +		WARN_ON_ONCE(1);	// FIXME: remove
>>>>>     		ret = -EIO;
>>>>>     		goto err;
>>>>>     	}
>>>>
>>>> This issue can still be reproduced.
>>>>
>>>> [ 3283.687469] WARNING: CPU: 0 PID: 0 at
>>>> /drivers/net/wireless/ath/ath11k/ce.c:405
>>>> ath11k_ce_per_engine_service+0x228/0x3e4 [ath11k]
>>>
>>> Thanks for verifying.
>>>
>>> Which platform are you testing on and which kernel are you using?
>>>
>>> I'm still waiting to hear back from some people testing my patch on the
>>> X13s (sc8280xp).
> 
>> qcs615-ride, kernel 6.6.65.
> 
> Ok, so a downstream vendor kernel?
> 
> qcs615-ride does not even have PCIe enabled in mainline yet, but I
> assume that's what you use here?
>   
>> I think the hardware has already ensured synchronization between
>> descriptor and head pointer, which isn't difficult to achieve. The issue
>> is likely caused by something else and requires further debugging.
> 
> Yeah, but you still need memory barriers on the kernel side.
> 
> It could be that we are looking at two different causes for those
> zero-length descriptors.
> 
> The error handling for that obviously needs to be fixed either way, but
> I haven't heard anyone hitting the corruption with the memory barriers
> in place on the X13s yet (even if we'd need some more time to test
> this).
> 
> Johan

After multiple and prolonged verifications, adding dma_rmb() did not 
improve the issue at all. I think this Status Descriptor is updated by 
hardware (Copy Engine) controlled by another system, not involving DMA 
or out-of-order CPU access within the same system, so memory barriers do 
not take effect.


  parent reply	other threads:[~2025-03-17  5:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-10  1:02 [PATCH v2 ath-next 0/2] " Miaoqing Pan
2025-03-10  1:02 ` [PATCH v2 ath-next 1/2] wifi: ath11k: add function to get next srng desc Miaoqing Pan
2025-03-10  1:02 ` [PATCH v2 ath-next 2/2] wifi: ath11k: fix HTC rx insufficient length Miaoqing Pan
2025-03-10 10:09   ` Johan Hovold
2025-03-11  8:29     ` Miaoqing Pan
2025-03-11 15:20       ` Jeff Johnson
2025-03-12  1:11         ` Miaoqing Pan
2025-03-12 16:43           ` Johan Hovold
2025-03-13  1:41             ` Miaoqing Pan
2025-03-13 15:57               ` Johan Hovold
2025-03-14  0:46                 ` Miaoqing Pan
2025-03-13 13:31             ` Miaoqing Pan
2025-03-13 16:14               ` Johan Hovold
2025-03-14  1:01                 ` Miaoqing Pan
2025-03-14  8:06                   ` Johan Hovold
2025-03-14  8:19                     ` Miaoqing Pan
2025-03-17  5:52                     ` Miaoqing Pan [this message]
2025-03-17 13:04                       ` Johan Hovold
2025-03-18  7:53                         ` Miaoqing Pan
2025-03-18 17:42                           ` Johan Hovold
2025-03-19  6:47                             ` Miaoqing Pan
2025-03-21  9:35                               ` Johan Hovold
2025-03-25  1:04                                 ` Miaoqing Pan

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=ecfe850c-b263-4bee-b888-c34178e690fc@quicinc.com \
    --to=quic_miaoqing@quicinc.com \
    --cc=ath11k@lists.infradead.org \
    --cc=jeff.johnson@oss.qualcomm.com \
    --cc=johan+linaro@kernel.org \
    --cc=johan@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®