Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp606788ybl; Fri, 10 Jan 2020 03:57:00 -0800 (PST) X-Google-Smtp-Source: APXvYqybsU3A+K3iJfbr94o2Q847PW+8cFaxZkhx258SFsOqayFugAO8PFuiny1p7Hxr26n0cIJQ X-Received: by 2002:aca:c415:: with SMTP id u21mr1931188oif.49.1578657420533; Fri, 10 Jan 2020 03:57:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578657420; cv=none; d=google.com; s=arc-20160816; b=g/xIwwv0wLQjRFwXfEy+8NIVDZz24/UZ1FZuNTEgnSacOFYk26ORZRoYIJkKTL2Gai pdvnHYFGCmXM352hLG/Rc3fRy2Dp0gSrDXP+Z7ZMqFQzjakuQU1wjDzP9vDeY5NFY+mZ j3QYginaMJOy5razYidNZD13IwzDwJC8xPhOnGSVrpyLWwIxMQZNAsgHln0xRUtCr/XA QC0uqjMzwMZh2DVh6B2yFAMSe8O2ntl3p/v1g8hfZ0pfZnIicX9GyDn6pDlYaWC6sM5a TCUon0UnltyjumwEM2zFpLb0gNNh6+nqww3/EcqAQ784G4EIm/lSyzyHCacf+Mrrl4PL vt3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=n3KoDUTCUrLQ2Z9kp8j5jbmHue0CzO70oQoWjJy+Oe4=; b=TdW4Ah+OI9KbyWxfclWU17ROO2vxDjm0EA/3YR0w//d7ZE3e0dN4egfnkKpmP1aKOI 9i1rXBBey9c0EnvKfgcZ7efn9Ny67AzFI+PJ5gf1FnZ0vxdcPskfiOKTObTj+JConDwU o40Cq+E7IcD/i90rP9gaMQuW5LKBcCREIEUo54ziPhIG1Mr8duKvJ3tRq52Dv6WD9OEZ uF7W1546L0QP/oFUGc/6egcWk79Dz8UklniKpMvDAHOoGteRTLGSiqHALOqdjVY9XDdM /ukDGWc312PSTHfLtuop7Bwk8BhpxGsYufnVx+CZ/cJr1yFeNBXbkrC+LcvReV2xy/LF t/yQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h22si1167663otk.18.2020.01.10.03.56.49; Fri, 10 Jan 2020 03:57:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728075AbgAJLyb (ORCPT + 99 others); Fri, 10 Jan 2020 06:54:31 -0500 Received: from foss.arm.com ([217.140.110.172]:43122 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728048AbgAJLy3 (ORCPT ); Fri, 10 Jan 2020 06:54:29 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B38641424; Fri, 10 Jan 2020 03:54:28 -0800 (PST) Received: from donnerap.arm.com (donnerap.cambridge.arm.com [10.1.197.44]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 967393F534; Fri, 10 Jan 2020 03:54:27 -0800 (PST) From: Andre Przywara To: "David S . Miller" , Radhey Shyam Pandey Cc: Michal Simek , Robert Hancock , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/14] net: axienet: Improve DMA error handling Date: Fri, 10 Jan 2020 11:54:05 +0000 Message-Id: <20200110115415.75683-5-andre.przywara@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200110115415.75683-1-andre.przywara@arm.com> References: <20200110115415.75683-1-andre.przywara@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since 0 is a valid DMA address, we cannot use the physical address to check whether a TX descriptor is valid and is holding a DMA mapping. Use the "cntrl" member of the descriptor to make this decision, as it contains at least the length of the buffer, so 0 points to an uninitialised buffer. Signed-off-by: Andre Przywara --- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c index 7e90044cf2d9..ec5d01adc1d5 100644 --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -570,7 +570,7 @@ static void axienet_start_xmit_done(struct net_device *ndev) DMA_TO_DEVICE); if (cur_p->skb) dev_consume_skb_irq(cur_p->skb); - /*cur_p->phys = 0;*/ + cur_p->cntrl = 0; cur_p->app0 = 0; cur_p->app1 = 0; cur_p->app2 = 0; @@ -1557,7 +1557,7 @@ static void axienet_dma_err_handler(unsigned long data) for (i = 0; i < lp->tx_bd_num; i++) { cur_p = &lp->tx_bd_v[i]; - if (cur_p->phys) + if (cur_p->cntrl) dma_unmap_single(ndev->dev.parent, cur_p->phys, (cur_p->cntrl & XAXIDMA_BD_CTRL_LENGTH_MASK), -- 2.17.1