Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1593280ybv; Thu, 20 Feb 2020 23:56:11 -0800 (PST) X-Google-Smtp-Source: APXvYqwH++5ISDhatE78yDZWK+6te2W4n6p6sLfND6yadMjRQ41wSQFmgk70pIUWRvMZXKM6QqsZ X-Received: by 2002:a9d:7cd9:: with SMTP id r25mr25470308otn.326.1582271771405; Thu, 20 Feb 2020 23:56:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582271771; cv=none; d=google.com; s=arc-20160816; b=Qzuj5sUXdKyTBJ0WNY5levEm1t31c4wsLxc1nwHv2KI8VW9f64ABQzlzKOOozMW6lb kCQAt55OJMsSXaKF7dyS8GvQn92OYCnDO3Gh6NwTKp3U7/qodSw7+i9NwS7Co7Fad2s5 8rMqs6fpSzqVe/d81Vu1o7l11JkpikvR3Ko0Im70T/3aZhzBchPxz4OuT8xBnHq5M7am /ZNCwh5lIuh+wOfH2NFt/QLF/XbOx38G6AGX/fslFcWXm+uMqBVkApfTO00KyPWHzQKx rEw39cql/PawvBH39QaKtBGlz0+C+oaNUXHFEnfmSlfxdxAgGgaf8Mf9RZlDspXC+mcn gu0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=HIcQkkCqAgAKijLM5wZnl0oBUh3q1SA/KnKu6rojKrA=; b=vvfuovAplB/LNiMi3l0vtJaNfqgu5elHqpU9xzkY+jCXf74Xh4YgIaoZwOPAlLotBK R93QJcQJ/MApeOnz5EP/WSrFAZ1Czsnj0OqKXS1B/Xe9y0ZnCrG6gL58AzpWFl5c/7o5 ZZ4axei8r+EtshiZOQsQvoI/L06YZrLeWFMWBfW28C2B0W91zTvO+7n1SNJwg1BtgOJt SVBaeBGTnReAkoxHc1woYtLzNNHH8YZE8O+n7D3NVLr0pGvoFe4ofxUEQ43k3/9puR+k CWyPjMy8gJMsix9Cr0sMF96sCKs4o661uvKZWuV82hAWYpVmntAzi+26lt3asRo3wo1b uitg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dpgf46UM; 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 i13si1010848otc.228.2020.02.20.23.55.59; Thu, 20 Feb 2020 23:56:11 -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; dkim=pass header.i=@kernel.org header.s=default header.b=Dpgf46UM; 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 S1729332AbgBUHzJ (ORCPT + 99 others); Fri, 21 Feb 2020 02:55:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:53936 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729848AbgBUHzI (ORCPT ); Fri, 21 Feb 2020 02:55:08 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 0179D20801; Fri, 21 Feb 2020 07:55:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582271708; bh=p1qYiOUmSP50rnBYmOOO5qvMBfzp7DHgdmMWOpbQvyU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dpgf46UMnXUXpRjfQYkwtLDI8A3udwogpvTpGO2hrETbIzHT+7y6kJ+XPPp0brYkL xu9pICBcGlwoxfDkScq6YRACpZuRvLvGq0Py97aYnygtQkNsTUUBwaYbTeTHKuSwNb Ay2xQCeQPDhLF11X47gcTnRiqOCvUcJr8L2cyquY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jean-Philippe Brucker , Will Deacon , Sasha Levin Subject: [PATCH 5.5 267/399] iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE Date: Fri, 21 Feb 2020 08:39:52 +0100 Message-Id: <20200221072428.246084467@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200221072402.315346745@linuxfoundation.org> References: <20200221072402.315346745@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Will Deacon [ Upstream commit d71e01716b3606a6648df7e5646ae12c75babde4 ] If, for some bizarre reason, the compiler decided to split up the write of STE DWORD 0, we could end up making a partial structure valid. Although this probably won't happen, follow the example of the context-descriptor code and use WRITE_ONCE() to ensure atomicity of the write. Reported-by: Jean-Philippe Brucker Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- drivers/iommu/arm-smmu-v3.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 2f7680faba49e..6bd6a3f3f4710 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -1643,7 +1643,8 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_master *master, u32 sid, STRTAB_STE_1_EATS_TRANS)); arm_smmu_sync_ste_for_sid(smmu, sid); - dst[0] = cpu_to_le64(val); + /* See comment in arm_smmu_write_ctx_desc() */ + WRITE_ONCE(dst[0], cpu_to_le64(val)); arm_smmu_sync_ste_for_sid(smmu, sid); /* It's likely that we'll want to use the new STE soon */ -- 2.20.1