Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2278122imm; Mon, 28 May 2018 05:15:58 -0700 (PDT) X-Google-Smtp-Source: AB8JxZryWL5kbwJGWyJrCAUbmjwBU4k1xIR3F+5BMTeZrGgqMXf2i47Ghwn5e/myNS/CVUDNbu3R X-Received: by 2002:a62:1083:: with SMTP id 3-v6mr13278846pfq.229.1527509758812; Mon, 28 May 2018 05:15:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527509758; cv=none; d=google.com; s=arc-20160816; b=Kb0UevgG5CzKyY3dyKY/b8eJkRK6pnJvD0EHMWAGNZb/V+FWeEl0xbfuxb9EELnEUY QDu4XaTCVTNUxhaxnNcBqRRnFv6VsBGLSoSsrjbTpHtVpc8pqUlEVgnAx15p9BZc3Kl7 y9iYzB2ldF/7L+FQsSpTMLNK8oVKcKpnp5BIq6Q9KE2gfbA2EbdFdKx1OE22W/y+EhOx qxa/V597s/SJQftPVBOWkPtjBYsmAvRhgkcvD2zQrnWzYRDFkWuO6Ly0C9vRfCqPx0DM mHvA/TfAQkd+CH6KTxm1atkQ32Gs2TbrZOIV35hl7YkkC6Ed6kE/jaA4FpyyT1j0OIER 7efw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=YB1N1csqehahsVF8+884zPykutRz1sxlFoz9Aqrv7KA=; b=gmw7IQhGLxVrW6kwrmUURm3aEEP5h5Lx0+/cPKHvyl05uniTU7rH5DqJws3P39BHbH HmWN8ihPWPPvegOgPEKQqrDO81FrHySUx2xN8/vH81pabi7Lhg1QEnko6zJe6RIFcxLY dfD3PjLFFJ/j5dvUF+RVSQibUrRGzvrmBz8jMPt2zaE9y7eHF6fnU52tE2BICyZTx2MB NsEcwluTDv6BbjVcxstm2tupwiNFXHWuIb5qcjnTZnbwhdqFAmZeSC8wznySmtKyKXz2 GhqWWW70aTwup2v8XXFjeUxpuul+CoqtWvo/zv2lCk/vah2/r8Qdgx+adCQb9U26hTkP mXLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=oy63vSRi; 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 v12-v6si29291294plo.264.2018.05.28.05.15.43; Mon, 28 May 2018 05:15:58 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=oy63vSRi; 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 S1422930AbeE1LDl (ORCPT + 99 others); Mon, 28 May 2018 07:03:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:50776 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164883AbeE1LDg (ORCPT ); Mon, 28 May 2018 07:03:36 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 32F812075C; Mon, 28 May 2018 11:03:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527505415; bh=B312lo3IQ5NhpQzNyB/Gg56MWHjJm0i6dGutk7zX3os=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oy63vSRiJ6wT+vRE8voMqmzLjJPF42/AXaa6MunN7wT4h93oV6Z1a0FMqjDchrSV/ fn30DsZNpHXkOa1FQdfUFZpyB4KFH6QMMwvWyBozrH8i8ii7nagLhI0BD2AZOYp+4r EMgFPZTG2S09b3CT480o7F46jk7OcM0Jriwy3w70= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Niklas Cassel , "David S. Miller" , Sasha Levin Subject: [PATCH 4.14 458/496] net: stmmac: ensure that the device has released ownership before reading data Date: Mon, 28 May 2018 12:04:03 +0200 Message-Id: <20180528100339.215354471@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Niklas Cassel [ Upstream commit a6b25da5e7ba212af5826a662e6a035a79bffabd ] According to Documentation/memory-barriers.txt, we need to use a dma_rmb() after reading the status/own bit, to ensure that all descriptor fields are read after reading the own bit. This way, we ensure that the DMA engine is done with the DMA descriptor before we read the other descriptor fields, e.g. reading the tx hardware timestamp (if PTP is enabled). Signed-off-by: Niklas Cassel Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1829,6 +1829,11 @@ static void stmmac_tx_clean(struct stmma if (unlikely(status & tx_dma_own)) break; + /* Make sure descriptor fields are read after reading + * the own bit. + */ + dma_rmb(); + /* Just consider the last segment and ...*/ if (likely(!(status & tx_not_ls))) { /* ... verify the status error condition */