Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1854953lql; Wed, 13 Mar 2024 09:56:05 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWY/A+EPIOaeWVaUbakJ+Io/XZnNpCJ/eqZBxBoaujPfKlYjYpbD0dZR70lazAQbyx60h0CMeJAQnZ7Xx7i5aPNx/GfKyFtLUjD2sgRnw== X-Google-Smtp-Source: AGHT+IEjGadBnD5hPRTlyoISCPZjvsETX0BkeyjGRcRm38wEpIl6+RRYBA+/qXB3lBztY116fzpJ X-Received: by 2002:a17:903:2381:b0:1dd:d88f:c79b with SMTP id v1-20020a170903238100b001ddd88fc79bmr1212497plh.49.1710348965323; Wed, 13 Mar 2024 09:56:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710348965; cv=pass; d=google.com; s=arc-20160816; b=Nike2hxx3XG3My95k9Ua89mVzXhXElRfEF7A86vNHFuODQRRpkAhBCaM/aKHPOM8Qx XXucEpytrov9D1XHiA2dORutnlEu/MBQv4rpuB/7hT+pOsrWalVA1TdaqJP1lYMQj4M4 t7ulkzkBKHfisC79Igl1sDhYKnA/DMraPgljaVXNvYmB5LJC9XuGwV05gRRUklBPI4KW +GXZhz14TXH3P8Pn2f/fRm7pt2/0Ec2E2JZ+deJveVRB4hdBWGBTg4aZO0LPtKHN3shk SwY3sjUVeaFvR04iXjcG6AvdibCPQffIGNJnL6iDggTLN3OPnlozvMxU3ecQUIs/0nP3 d1Vg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=SdWYkcZU1TERJDpA5MkhrW2RZRSVmJUh5Q0MUYhVnbI=; fh=eqxG9ZgQ7D5gp6Qq4M9r6uRPDgoBvrEdDCiYoLYhsV0=; b=zY4nVIgVdASP1m3FEfrwwDTEOnNge5hrCD2sZ9Ska++1HCjkDG6SscMZG/4jGs9lGC Jd5/SrZQvI4NGtKLdjoPo9dLW0hR5drjsA6DKKXwn/sybBued7WWqgk4hHlZnAgA5t6V o1ZQXKSmeHMrr3Dxazl30/TQ/A8w9kpXRV5zSjsm1ISL80xNETw3qFZDNqFQgEBn83z/ wBOTEmBT1TNvqAk+I1u3uhSCwek3xKlCACJVcHhsJ1api5dAALofDmL8L1aHs5gsK2wD kSY256Qi5kkW43/frg9gMxn//Go9RM2k16sSfUU7BSDvXNEOJwO1LMn+TCSecV06CTFB zI6Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="aqW7/Xfj"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101816-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101816-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id x7-20020a170902a38700b001dd8c0a1cf2si7332431pla.610.2024.03.13.09.56.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 09:56:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-101816-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="aqW7/Xfj"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101816-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101816-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BDE61287C20 for ; Wed, 13 Mar 2024 16:50:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0876E69976; Wed, 13 Mar 2024 16:37:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aqW7/Xfj" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 2B65E6930D; Wed, 13 Mar 2024 16:37:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710347847; cv=none; b=Mt2PYcEjLAlZQeo4DNpstrWVpfnww0OesuNcJBk+7F2FWvcNU40k/OJqmSTOUBrBAsEuJKsljTtZ4yjRyu7maZ+qkx2XfFdtz4s3H6aMBe3epl7kS0seAMzyP4SVqoua+UvQRDe+6h5n4OB8tRGsHyWS/QZDzNvHD/0CXw9F9fc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710347847; c=relaxed/simple; bh=loTCv0nv6aLBsRQLf2xaNQcG+KvzRoNJZw/1QQdpV9I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a9I5Nhfz7vPc/HHSYKpPZ+g+jA/aKsHhNL5xYPrf74/lq6ELH1/0ZUShLg+3DtGhjE4G9rRuFl/HMgVpcCivZchlep6UfOlQS8mfks7bF/Wxi5treJ1qRr9Dj+QzfB8Yk4C1sFtBOkR2FGBbsWnHBsQUctemr5cMvHClEWjnDeU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aqW7/Xfj; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C6F3C433A6; Wed, 13 Mar 2024 16:37:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710347847; bh=loTCv0nv6aLBsRQLf2xaNQcG+KvzRoNJZw/1QQdpV9I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aqW7/Xfjpwnft+se6jcwYrTqZaWqzeTLhG9iUspdWjTQ+EwfUogc2blpcy/a5lG7/ omAx4cRTlvsw//KhzyjbXkUi8GUjxrsy2Xr9tAf4WPvcmJnAc4LubC/xLr4sAm5n5U GeZyB3T471+pICNLCmZ8RIRlxUfJmk4/3vlUO1ktPoYb/ujSuweTGdQyM4r/1vzpdP SbQeG4szBFMe5t/P4nKFAyLFOSmyw9959v7pvvAD6IDbBVt6D57/KzGWC/iTWIj72G 7k6syQKIxOkCutMVNJ5XekJSFJHp8IYkWUewBWCbdYTETxnWIM2bJOq1DpppkcTXcU tfUVjEU5vgZEw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Maciej Fijalkowski , Chandan Kumar Rout , Magnus Karlsson , Tony Nguyen , Sasha Levin Subject: [PATCH 6.6 13/60] ice: reorder disabling IRQ and NAPI in ice_qp_dis Date: Wed, 13 Mar 2024 12:36:20 -0400 Message-ID: <20240313163707.615000-14-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240313163707.615000-1-sashal@kernel.org> References: <20240313163707.615000-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.6.22-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-6.6.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 6.6.22-rc1 X-KernelTest-Deadline: 2024-03-15T16:36+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Maciej Fijalkowski [ Upstream commit 99099c6bc75a30b76bb5d6774a0509ab6f06af05 ] ice_qp_dis() currently does things in very mixed way. Tx is stopped before disabling IRQ on related queue vector, then it takes care of disabling Rx and finally NAPI is disabled. Let us start with disabling IRQs in the first place followed by turning off NAPI. Then it is safe to handle queues. One subtle change on top of that is that even though ice_qp_ena() looks more sane, clear ICE_CFG_BUSY as the last thing there. Fixes: 2d4238f55697 ("ice: Add support for AF_XDP") Signed-off-by: Maciej Fijalkowski Tested-by: Chandan Kumar Rout (A Contingent Worker at Intel) Acked-by: Magnus Karlsson Signed-off-by: Tony Nguyen Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/ice/ice_xsk.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c index 307c609137bdf..7bd71660011e4 100644 --- a/drivers/net/ethernet/intel/ice/ice_xsk.c +++ b/drivers/net/ethernet/intel/ice/ice_xsk.c @@ -179,6 +179,10 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx) return -EBUSY; usleep_range(1000, 2000); } + + ice_qvec_dis_irq(vsi, rx_ring, q_vector); + ice_qvec_toggle_napi(vsi, q_vector, false); + netif_tx_stop_queue(netdev_get_tx_queue(vsi->netdev, q_idx)); ice_fill_txq_meta(vsi, tx_ring, &txq_meta); @@ -195,13 +199,10 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx) if (err) return err; } - ice_qvec_dis_irq(vsi, rx_ring, q_vector); - err = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true); if (err) return err; - ice_qvec_toggle_napi(vsi, q_vector, false); ice_qp_clean_rings(vsi, q_idx); ice_qp_reset_stats(vsi, q_idx); @@ -264,11 +265,11 @@ static int ice_qp_ena(struct ice_vsi *vsi, u16 q_idx) if (err) goto free_buf; - clear_bit(ICE_CFG_BUSY, vsi->state); ice_qvec_toggle_napi(vsi, q_vector, true); ice_qvec_ena_irq(vsi, q_vector); netif_tx_start_queue(netdev_get_tx_queue(vsi->netdev, q_idx)); + clear_bit(ICE_CFG_BUSY, vsi->state); free_buf: kfree(qg_buf); return err; -- 2.43.0