From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8EB85C3DA4A for ; Fri, 16 Aug 2024 18:10:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To: From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wrLqH6z8RJbSPKfzUbArY5JZFkjEL4Ao1SVL3G8R52Q=; b=WfeRxCtskM8YHGP7v1U8BwW0BM w+HC6bfeMi86DConxC7RMja1sD2bDjdkMVI7m5vnX+S9bOdd5114ERSCM7VG/jCYYlNtQY6Wb0JPB gDOVS3ZWIr6iO6b5scgdzMGhEb1uZY8BUxs1PqgwuLsg5sULsNjxGGlnq5LvoAl850n5A6gvgUVWk RMiKL3eC1b6Gs8GZrEqlszJNIw6OXMXfKrzPrvqCUcdMeIFq8wvwbO0uJQxCKDfc3tXuPhZ05Lzbt LQTpG1DH+oDJW/KqivfX6U2pUs/dMznOCHWpW/TW2ycehCEBoyrn9SLFxCmqROeidTAlEkqBxa5Mf rzxNuV4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sf1Ow-0000000DnYB-32OM; Fri, 16 Aug 2024 18:10:14 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sf1OH-0000000DnOl-3BTx for linux-arm-kernel@lists.infradead.org; Fri, 16 Aug 2024 18:09:35 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 0348FCE207A; Fri, 16 Aug 2024 18:09:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E2F8C4AF0E; Fri, 16 Aug 2024 18:09:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1723831771; bh=2pwdYzQ2ojaf94uUSc3VfR/126ez82e5gZxfj8e+7BA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=C4voLZmRQ5Wf7Hx+7sGeKAABNuyIbLbewF/VAV0+W+YSxA8X4e8A62Lo4Myd2tkCp qS4TMHCH0Bs0gG+Ra4ABe5l7fK8XozXgNK1T31AqzAJ3AYTCbD7LdXBS9SV1JvBI8o PWU+/tMTo2HqIV+CSEKqlm7w2NIDN+EBBRbFsG908yoOb1J4YosA7yRRM/pU+nYInN dFkUU4GFP4JRAO4NsgO68P8OEJgeaCd1L0ggEN+q0zYv7I8R8ygoWeiAth2rEA3hx7 dM4yTPHqN9DD8IPgCT2iHNmU0jore++z0+JkyyXdQ47IWeq80GkFgAXMrb4MxB7SKS 6WgQBHYw6atmg== Date: Fri, 16 Aug 2024 11:09:28 -0700 From: Jakub Kicinski To: ende.tan@starfivetech.com Cc: netdev@vger.kernel.org, andrew@lunn.ch, alexandre.torgue@foss.st.com, joabreu@synopsys.com, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, mcoquelin.stm32@gmail.com, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, leyfoon.tan@starfivetech.com, minda.chen@starfivetech.com, endeneer@gmail.com Subject: Re: [net-next,v1,1/1] net: stmmac: Introduce set_rx_ic() for enabling RX interrupt-on-completion Message-ID: <20240816110928.1a75d223@kernel.org> In-Reply-To: <20240814092438.3129-1-ende.tan@starfivetech.com> References: <20240814092438.3129-1-ende.tan@starfivetech.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240816_110934_012332_457B6EDF X-CRM114-Status: UNSURE ( 9.06 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, 14 Aug 2024 17:24:38 +0800 ende.tan@starfivetech.com wrote: > From: Tan En De > > Currently, some set_rx_owner() callbacks set interrupt-on-completion bit > in addition to OWN bit, without inserting a dma_wmb() barrier. This > might cause missed interrupt if the DMA sees the OWN bit before the > interrupt-on-completion bit is set. > > Thus, let's introduce set_rx_ic() for enabling interrupt-on-completion, > and call it before dma_wmb() and set_rx_owner() in the main driver, > ensuring proper ordering and preventing missed interrupt. Having multiple indirect function calls to write a single descriptor is really not great. Looks like it's always bit 31, can't this be coded up as common handler which sets bit 31 in the appropriate word (word offset specified per platform)?