Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2238475imm; Mon, 28 May 2018 04:32:50 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrmXd3RPL1qn2GAwiDvegE2lb0AQE0uWu4P/cLRbUfBgu7t2zwvFjJV06IDJ8EOa5bcPfPU X-Received: by 2002:a17:902:b409:: with SMTP id x9-v6mr13506481plr.180.1527507170424; Mon, 28 May 2018 04:32:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527507170; cv=none; d=google.com; s=arc-20160816; b=kq0U6W43YXz7zvwjaFs1EYIIUmGH5GcI5TZeyW/1rbrYvijERJGuwBTYC0alKoBw7Q ZLwPfhf01/oPju6vMytOHJafN74htPB3Jm3fBdu9yueyRrNJnXD6zLfp6SN4Nk11h/8/ VO4tERMRgHPt78Q961grOkLHpcCXG5pbX9EWpqabjdbSDSs4bDcZXfGj7/zvoIyw+pNG 3SOxHs5Kv8/FCjjn82PlcaVxzwcLUmXpm0RMosFXfiZoBEV8/5SbLjthI9ibyPXbB7Dm 0HkJvGpd/c67d3AH4Cg4mGEiYmCABv1iAAwRDKlppTMSWIHjGHMzJauI6sl2ioWEBhkj 8Bvw== 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=m4Z2HYIWhGZe9BCFsnHPDUhOwDhU9izi5ORrpRBWc9I=; b=nv9a6qX1cKKoGMKi7PKoM7xyq2OzTB4BiHjXZYPmBPM04VYujqT9t1i2uChYk9c4jS jhEfOV13RqgL0BFbZQAcgX8vj2VoPaN8Y8LHQYqKDYbGKso0M4Q0mw3wPE0U4ILMm3lb 2pEqi7Cj83JLocDmj7CTBZtRqcOW1/PETClGdNaZiziaBMncsnPUSGM/aTUMztoVhmw0 Nqx6y68RaNJn2/6cUx9sqVp9ePe41XzqQp6CwA695hIX+dpurqNdGYuDwJAm7m5yvbQH rhNS1VAO7cdGROmpqVCsnbfAHUgmgow7Gv7hreTdn/yZU9ZErmNfiXDlW6KOqEQeaFnT 2NMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=he5J0+4O; 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 e8-v6si23895262pgt.185.2018.05.28.04.32.35; Mon, 28 May 2018 04:32:50 -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=he5J0+4O; 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 S1424416AbeE1LO0 (ORCPT + 99 others); Mon, 28 May 2018 07:14:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:33566 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1424383AbeE1LOP (ORCPT ); Mon, 28 May 2018 07:14:15 -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 761C7206B7; Mon, 28 May 2018 11:14:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527506055; bh=VkmolDVl5OJM/4OoOvQSPwO0TdTZp9C1NuktLFtz/QQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=he5J0+4OL/KNmeDZovkcNnl2DiMj3cukCC2STJ9i6jSnG27awB3No6Nc1ukQVaDa7 ZUow0oAD96d3fmAie3fRJ2UQ3XvKAA7hCb71FzCqyhE+BxNC3aylvFV9tnXjD617wn FlIYhaWCOId9r7HSK2x3HWuRdLUu6Rp/BiJpTmtY= 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.16 225/272] net: stmmac: ensure that the device has released ownership before reading data Date: Mon, 28 May 2018 12:04:18 +0200 Message-Id: <20180528100259.327672167@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100240.256525891@linuxfoundation.org> References: <20180528100240.256525891@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.16-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 @@ -1843,6 +1843,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 */