From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0539B30AABE for ; Fri, 5 Dec 2025 16:41:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764952907; cv=none; b=cNwf7OeBZRf85JXuDUP4qQdF5wN6dGbgQZCXJsMYWDnJDc73Ljk8B3INKmxrbpT21ERJEkB9f4zQpdpMPS5zyDq35EyBQw4P3tuWifU1UUSSMEE62IZtuhWw4vbGPijRRICuj2jS25tDOQ3IJLgK+aKP2g2lisPKqMD2U68hB88= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764952907; c=relaxed/simple; bh=Ypp0okvDVTaWZXUTzuSgHDhEjVEjQxq9/GS/Qn+AYMQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=E+QeBrhQAIfySN7fvoUt75ceC6Jl3i9p9KEnuN2GnGKRds8iICveopg+qsh0/mL5AYQL07RxInIMS3REmCjKjwJWM1197wv/md/Df37sstPRKUrH54kmglEqfcYOV6PZSuTopwrTi6LmmQUFJeX15WicGECLwpGXpqryG/kJ3yM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=I2JMzol3; arc=none smtp.client-ip=192.198.163.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="I2JMzol3" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1764952903; x=1796488903; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=Ypp0okvDVTaWZXUTzuSgHDhEjVEjQxq9/GS/Qn+AYMQ=; b=I2JMzol3XbJlQ4IIO1gzXtS7exSus71f6njU+Xi8XgUMAkSdLsZkC5iG bJqfUqhH1kxxeePT9fE+pVG1vBPw8/s14zDu5sG1R3n1x7ETcLdD1Zvmu nMzj+IibyIKMBelN9RTmQPmuk1iCxMmpTkLCX7H8I3B1awf/Bt9v+Pebf gjFaAMUaI+QjWJKqpyGplT5b/PiCMryfge2OYCSFUbHMsTnLpo8a3KRu+ pJm9h4++MzKmx1oHOQTWVBrjwnSoztH8DZaDlZADz0cg2oaKGkaOwP9fg 6+yOgKWRduEkfpUyYUz9D18olStNnwaggCS/uk3MWg0ICG+wrexboPW3q Q==; X-CSE-ConnectionGUID: GDhcjzssTwCNogzk3J0HPw== X-CSE-MsgGUID: VL4CLyCxR6OZtK8n7e/CgQ== X-IronPort-AV: E=McAfee;i="6800,10657,11633"; a="67064863" X-IronPort-AV: E=Sophos;i="6.20,252,1758610800"; d="scan'208";a="67064863" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2025 08:41:37 -0800 X-CSE-ConnectionGUID: MnG2fNR6RWiyW4pA3fHRhw== X-CSE-MsgGUID: MPsC99/nR2mAx5GZVfBSkA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.20,252,1758610800"; d="scan'208";a="194633337" Received: from mfalkows-mobl.ger.corp.intel.com (HELO [10.246.17.246]) ([10.246.17.246]) by orviesa010-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Dec 2025 08:41:35 -0800 Message-ID: Date: Fri, 5 Dec 2025 17:41:30 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V1] accel/amdxdna: Fix tail-pointer polling in mailbox_get_msg() To: Lizhi Hou , ogabbay@kernel.org, quic_jhugo@quicinc.com, dri-devel@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, max.zhen@amd.com, sonal.santan@amd.com, mario.limonciello@amd.com References: <20251204181603.793824-1-lizhi.hou@amd.com> Content-Language: en-US From: "Falkowski, Maciej" In-Reply-To: <20251204181603.793824-1-lizhi.hou@amd.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Reviewed-by: Maciej Falkowski On 12/4/2025 7:16 PM, Lizhi Hou wrote: > In mailbox_get_msg(), mailbox_reg_read_non_zero() is called to poll for a > non-zero tail pointer. This assumed that a zero value indicates an error. > However, certain corner cases legitimately produce a zero tail pointer. > To handle these cases, remove mailbox_reg_read_non_zero(). The zero tail > pointer will be treated as a valid rewind event. > > Signed-off-by: Lizhi Hou > --- > drivers/accel/amdxdna/amdxdna_mailbox.c | 19 +------------------ > 1 file changed, 1 insertion(+), 18 deletions(-) > > diff --git a/drivers/accel/amdxdna/amdxdna_mailbox.c b/drivers/accel/amdxdna/amdxdna_mailbox.c > index 858df97cd3fb..a60a85ce564c 100644 > --- a/drivers/accel/amdxdna/amdxdna_mailbox.c > +++ b/drivers/accel/amdxdna/amdxdna_mailbox.c > @@ -112,22 +112,6 @@ static u32 mailbox_reg_read(struct mailbox_channel *mb_chann, u32 mbox_reg) > return readl(ringbuf_addr); > } > > -static int mailbox_reg_read_non_zero(struct mailbox_channel *mb_chann, u32 mbox_reg, u32 *val) > -{ > - struct xdna_mailbox_res *mb_res = &mb_chann->mb->res; > - void __iomem *ringbuf_addr = mb_res->mbox_base + mbox_reg; > - int ret, value; > - > - /* Poll till value is not zero */ > - ret = readx_poll_timeout(readl, ringbuf_addr, value, > - value, 1 /* us */, 100); > - if (ret < 0) > - return ret; > - > - *val = value; > - return 0; > -} > - > static inline void > mailbox_set_headptr(struct mailbox_channel *mb_chann, u32 headptr_val) > { > @@ -286,8 +270,7 @@ static int mailbox_get_msg(struct mailbox_channel *mb_chann) > u32 start_addr; > int ret; > > - if (mailbox_reg_read_non_zero(mb_chann, mb_chann->res[CHAN_RES_I2X].mb_tail_ptr_reg, &tail)) > - return -EINVAL; > + tail = mailbox_get_tailptr(mb_chann, CHAN_RES_I2X); > head = mb_chann->i2x_head; > ringbuf_size = mailbox_get_ringbuf_size(mb_chann, CHAN_RES_I2X); > start_addr = mb_chann->res[CHAN_RES_I2X].rb_start_addr;