Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3690626pxb; Mon, 24 Jan 2022 15:28:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkGfYo4cOvDOu3oUoUof7dDrkAf0FrNOKS5BdoEQTsHuLP9b1ktwqCc7HZ5P8g1aym0ezW X-Received: by 2002:a17:902:6b02:b0:149:9c7d:3ae7 with SMTP id o2-20020a1709026b0200b001499c7d3ae7mr16341352plk.51.1643066916306; Mon, 24 Jan 2022 15:28:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643066916; cv=none; d=google.com; s=arc-20160816; b=0IpbRD1Ro4uycIHYHl3YmF4mA8rhlP3kXT6ZJZJxNvzafhXutNnQjA3NsPHsTZlhd6 YZyeJmCRQiv2mkWhYynUBXzsHxptB9zQybqlebdlubyCs9wz8Try2KVgUAekKOXH7ZTA yxGLYeJOvvFrJ3CrK37ixhmy63unvLz9GV8Y2U9AEFpkL6XdHDJ9mjV44GsTzc9m0Z1r hLzrmHyOP1/oO+c+ylOkbHSGdLktVmv9nytKP3SqpvlyXJ+s3a0w4gQITlvPGN3mW0bu tEx1h09gjnUwh3cHv3WFUQf1AHu63Otsx9GhxbjYGoUTo7dEbf5DaI+NqVZ0SwcQgyUU av/A== 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=ow6QNJq8pCUC3/wCYtaeca6PMt5Kk8+m6P+hYdNgM5RWW0Vuf9/IKxNmgMKlUzFah0 P1RtMVATkA31B2Tu+oLcJjelTSOt4talqzRXGv1Xj5Qa256fmEov6Kc7OvzGEY7FX8Tz 1wwLlS6T3vploApmggev7wnmGKYt/cR0+imTpWvWQFE2jfOTvafVYTOHV3l1d1a7Fcju I5KE3F4ibx5ZsEFRnt1sM59qtsnDOMMwArTm39Sj/IiB7JOebNUoppl4chWDX1l2vJAm 6G2NIMRnk9se5E97UAJpjcNocO2H23fdD39TjWGFiWGX+QOUxMXuSUsJSPbV1MenHZIi K7Yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=g5cTEvsF; 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 m20si13829023pfo.299.2022.01.24.15.28.24; Mon, 24 Jan 2022 15:28:36 -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=g5cTEvsF; 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 S1848437AbiAXXWa (ORCPT + 99 others); Mon, 24 Jan 2022 18:22:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1584586AbiAXWV3 (ORCPT ); Mon, 24 Jan 2022 17:21:29 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C055C0424E1; Mon, 24 Jan 2022 12:51:31 -0800 (PST) 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 EEE46B810A8; Mon, 24 Jan 2022 20:51:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3229BC340E5; Mon, 24 Jan 2022 20:51:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643057488; bh=z/kUukaJylcFxGt8AABs3R9KeYEcCOvB/8aKXDK3HDc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g5cTEvsFfq8wOcSAg6np3DTq/DnPrp4rx437sJo8FGYiQo46leUO3hPZdKgKn8m0J e0O8TB/OHTeEyK1S2DEQFi+jmqcJ3ufaDPtgklGoBgQB4fz9JVipxspbEHD/L+uxFZ sdR7EP6EwZkUGEE/sKKDtanYlx1i579mFQDsIrcs= 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.15 796/846] net: axienet: Fix TX ring slot available check Date: Mon, 24 Jan 2022 19:45:13 +0100 Message-Id: <20220124184128.409686443@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184100.867127425@linuxfoundation.org> References: <20220124184100.867127425@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; }