Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp4369716ioa; Wed, 27 Apr 2022 02:10:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmhmAOzSFw8uuwaJJCdnRtSqVfsx1DnuD1Jl9EyhZnySrnTJwXaUdjPkkRJR/nG7QiyLKT X-Received: by 2002:a17:90b:4b87:b0:1d3:d3:3f90 with SMTP id lr7-20020a17090b4b8700b001d300d33f90mr42419940pjb.232.1651050627685; Wed, 27 Apr 2022 02:10:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651050627; cv=none; d=google.com; s=arc-20160816; b=yW+04n55DDYoHOjPftzKGETKX9ofbIVlbQxR4c5nGX3GItP0pTFg86JMDNvNQD3p66 zpYMYN0cJO1D4AwOKT6Eees0lx6QLqnvj34G7kK4aiCSipaKd7KXLkqS2fnKwocLTaol CmhXxiimC/4qOjdc7nNBCaYfFbZ6vqUprA1LdJ+DFD4BOQPN+WtE8flHZ5pxa4S4haZe BNcfKJdQA/ztyJC2+tOyRwft5vYf88GOKOInlCoTRXeQPTnfMisxZNYuYFLxEXE3wlQE FH9lBjCcg7HE/iUpFnkIxsg92RVx3QI956x3d1HAbKsQKat2HSWObOjRS+ellQ7SOwcD fKCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :dkim-filter; bh=1A0SRXuIJ+MkXw+cW6tYHcX5DI4mJt6N/DBb9KvzSC4=; b=bJKkCv7xydRayv04ZAzRrxV+6dsdml13ehYhOIGw4OzsQBAyg6Or0onDL1S387pogr rWiNbr5MWUHR2ACT2YyUxIb+oVf8eu1HR3Q7p92oA5XtMvHH/O49ndDuxhw2F6bUOZJ4 YhT1v1+glCq6Y9QmIBvnS2Y9+nGVMuD+txY7m9HFiYvUcGT9vNkLhmm5/AgPHV6MWv4P 3UH+ZNGYbFdnz8ROxHpM4LS/YmR0yPtCzqDLFZ/F/s4Jau+po46TcjNGzekj/UOGkO6z fTdVLUX64iMqFvuyDonUZqvNhyHmerwTVv40UaLT5yXspg5pMdtzLjeiGth/xbsnKNtA r3xQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fr.zoreil.com header.s=v20220413 header.b=NRtJF3wq; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id l9-20020a170903120900b00153b2d16420si1171240plh.40.2022.04.27.02.10.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Apr 2022 02:10:27 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@fr.zoreil.com header.s=v20220413 header.b=NRtJF3wq; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 56D341F7D60; Wed, 27 Apr 2022 02:01:17 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343742AbiDZXAw (ORCPT + 99 others); Tue, 26 Apr 2022 19:00:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56810 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236170AbiDZXAu (ORCPT ); Tue, 26 Apr 2022 19:00:50 -0400 X-Greylist: delayed 256 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Tue, 26 Apr 2022 15:57:40 PDT Received: from violet.fr.zoreil.com (violet.fr.zoreil.com [IPv6:2001:4b98:dc0:41:216:3eff:fe56:8398]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A89F530540; Tue, 26 Apr 2022 15:57:40 -0700 (PDT) Received: from violet.fr.zoreil.com ([127.0.0.1]) by violet.fr.zoreil.com (8.17.1/8.17.1) with ESMTP id 23QMqZP6815178; Wed, 27 Apr 2022 00:52:35 +0200 DKIM-Filter: OpenDKIM Filter v2.11.0 violet.fr.zoreil.com 23QMqZP6815178 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fr.zoreil.com; s=v20220413; t=1651013555; bh=1A0SRXuIJ+MkXw+cW6tYHcX5DI4mJt6N/DBb9KvzSC4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=NRtJF3wqEfKOQjfWHq7zaGMZ3Se7mX4oyHAPUS4AeqepGshELU9tJcvh6hcntdoId W8wHt8lec+/bIhXeMwyD2IK/er1De+/OZyfHHprXJLXSoAtolROoAjayrQ3+960KzX k9U2TgY1ori0qy40kHXNo51gQC0tdMeOBCaOtKYQ= Received: (from romieu@localhost) by violet.fr.zoreil.com (8.17.1/8.17.1/Submit) id 23QMqY0W815176; Wed, 27 Apr 2022 00:52:34 +0200 Date: Wed, 27 Apr 2022 00:52:34 +0200 From: Francois Romieu To: Wells Lu Cc: davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, pabeni@redhat.com, krzk+dt@kernel.org, roopa@nvidia.com, andrew@lunn.ch, edumazet@google.com, wells.lu@sunplus.com Subject: Re: [PATCH net-next v9 2/2] net: ethernet: Add driver for Sunplus SP7021 Message-ID: References: <1650882640-7106-1-git-send-email-wellslutw@gmail.com> <1650882640-7106-3-git-send-email-wellslutw@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1650882640-7106-3-git-send-email-wellslutw@gmail.com> X-Organisation: Land of Sunshine Inc. X-Spam-Status: No, score=1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,RDNS_NONE,SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Wells Lu : [...] > +int spl2sw_rx_poll(struct napi_struct *napi, int budget) > +{ [...] > + wmb(); /* make sure settings are effective. */ > + mask = readl(comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + mask &= ~MAC_INT_RX; > + writel(mask, comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + > + napi_complete(napi); > + return 0; > +} > + > +int spl2sw_tx_poll(struct napi_struct *napi, int budget) > +{ [...] > + wmb(); /* make sure settings are effective. */ > + mask = readl(comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + mask &= ~MAC_INT_TX; > + writel(mask, comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + > + napi_complete(napi); > + return 0; > +} > + > +irqreturn_t spl2sw_ethernet_interrupt(int irq, void *dev_id) > +{ [...] > + if (status & MAC_INT_RX) { > + /* Disable RX interrupts. */ > + mask = readl(comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + mask |= MAC_INT_RX; > + writel(mask, comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); [...] > + napi_schedule(&comm->rx_napi); > + } > + > + if (status & MAC_INT_TX) { > + /* Disable TX interrupts. */ > + mask = readl(comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + mask |= MAC_INT_TX; > + writel(mask, comm->l2sw_reg_base + L2SW_SW_INT_MASK_0); > + > + if (unlikely(status & MAC_INT_TX_DES_ERR)) { [...] > + } else { > + napi_schedule(&comm->tx_napi); > + } > + } The readl/writel sequence in rx_poll (or tx_poll) races with the irq handler performing MAC_INT_TX (or MAC_INT_RX) work. If the readl returns the same value to both callers, one of the writel will be overwritten. -- Ueimor