Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3594689pxb; Mon, 24 Jan 2022 13:05:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJysopN0zU6F4DkyJN4aQ30vpv68sttGEtxBd6WdG1sGaxZTDShwg+bprMajizc0i5uOZOpb X-Received: by 2002:a17:90b:4f44:: with SMTP id pj4mr176962pjb.216.1643058334141; Mon, 24 Jan 2022 13:05:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643058334; cv=none; d=google.com; s=arc-20160816; b=QR6OXd3AF2h+PznmoWBucNK0ofFlI9jJS4TIn2tSA56m+zZSxmqLGjaE1gr1BBlXim /t2TSuKnytP/MirIuh1BidZlvAXwR2RzRzT1VyZrD4N3dPnDAmmOR8ja52ahWh+wT4im TFdhajBr6nUL/ogugpONLdFt2vmIzDwfkkS7Ob161xbvdqB/7r0r/IO9nqrOcWOEQumb ztRNPwyr+6WHjaEvPXQErLZrk+r2wQOZtA5RydpgXArQPXharXspxCpnLPE9VI9LJvW8 R3e27TfZgDf0wo4HmGPTko5FE/D/GUmy+S9wudnHN2YlYNepgMdF2/mX4v0oXeRXZGSl EO2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=bHMPAePjDeIaiTQLdBlTBMT2dhK5ES64bjomtVmWrLY=; b=AeBmQrDO6u7UxKFKXQF4vVduWLOR64KwV3wLbBjHHeE2fRrZO3FqWM1vYSe7JGSLe1 8lNE6RiCDLCC12pW77wjCfP981JLrOSs5FBO9FWJZ/ogg38WZRDgmWsEeAAKefBaDyhM nYYIwZ5BcOJNdWZHwR5eqXpZR3ybjHrixoV5AykY3BeDcjX96kzMR1XSiixugCjwdUF2 daUhZ6TI5FDdXVXcYKgrJWKQJ+r9fp/yy3CfwI+Yh3SDkv4uj5P7s0kpnIOfrkyE7X87 uCvvzOKQfw6G4IQ5qUIGz7MUUEXKGPPtENIsJIQFmzc3qw5uZ9etodZceFV/vETipYTL oBMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=PQplKajH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d4si15025727pfj.222.2022.01.24.13.05.20; Mon, 24 Jan 2022 13:05:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=PQplKajH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1350499AbiAXU3G (ORCPT + 99 others); Mon, 24 Jan 2022 15:29:06 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:47728 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378550AbiAXUHi (ORCPT ); Mon, 24 Jan 2022 15:07:38 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 22F22B811FB; Mon, 24 Jan 2022 20:07:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36191C340E5; Mon, 24 Jan 2022 20:07:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643054855; bh=z/kUukaJylcFxGt8AABs3R9KeYEcCOvB/8aKXDK3HDc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PQplKajHiTtnXeC+jhbpNd+tvTqfjfueO/1fV6SqZeWrnnkDmhEsBwSOttlTA1hvP 5cqu3aIEqv5ZAA0rBtkfrPJKpHJuJCXIXRGjQnTrwL0mBww2EPyUApaKAnB2Rco/pV 3yBU6guxfpl89b4hfcxipEMCv078EolmWZ+GntLM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Robert Hancock , "David S. Miller" Subject: [PATCH 5.10 525/563] net: axienet: Fix TX ring slot available check Date: Mon, 24 Jan 2022 19:44:50 +0100 Message-Id: <20220124184042.593953437@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184024.407936072@linuxfoundation.org> References: <20220124184024.407936072@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Robert Hancock commit 996defd7f8b5dafc1d480b7585c7c62437f80c3c upstream. The check for whether a TX ring slot was available was incorrect, since a slot which had been loaded with transmit data but the device had not started transmitting would be treated as available, potentially causing non-transmitted slots to be overwritten. The control field in the descriptor should be checked, rather than the status field (which may only be updated when the device completes the entry). Fixes: 8a3b7a252dca9 ("drivers/net/ethernet/xilinx: added Xilinx AXI Ethernet driver") Signed-off-by: Robert Hancock Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -643,7 +643,6 @@ static int axienet_free_tx_chain(struct if (cur_p->skb && (status & XAXIDMA_BD_STS_COMPLETE_MASK)) dev_consume_skb_irq(cur_p->skb); - cur_p->cntrl = 0; cur_p->app0 = 0; cur_p->app1 = 0; cur_p->app2 = 0; @@ -651,6 +650,7 @@ static int axienet_free_tx_chain(struct cur_p->skb = NULL; /* ensure our transmit path and device don't prematurely see status cleared */ wmb(); + cur_p->cntrl = 0; cur_p->status = 0; if (sizep) @@ -713,7 +713,7 @@ static inline int axienet_check_tx_bd_sp /* Ensure we see all descriptor updates from device or TX IRQ path */ rmb(); cur_p = &lp->tx_bd_v[(lp->tx_bd_tail + num_frag) % lp->tx_bd_num]; - if (cur_p->status & XAXIDMA_BD_STS_ALL_MASK) + if (cur_p->cntrl) return NETDEV_TX_BUSY; return 0; }