Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2268629ybl; Thu, 19 Dec 2019 10:44:09 -0800 (PST) X-Google-Smtp-Source: APXvYqwGOe4jCrtVhVbe3faj541mths5NoLiRh7D3SI7gb0Z5+/noxNLGicJiqpVxqGyByHhrF2U X-Received: by 2002:a9d:2028:: with SMTP id n37mr10721080ota.127.1576781048788; Thu, 19 Dec 2019 10:44:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576781048; cv=none; d=google.com; s=arc-20160816; b=e1fC1j2eiGS2DFdnjdTzrFsqAqKksuPVBltBollicI9FdwLb3UuvUgHiiyU/NWN7Qp Eozb3+qCBs5IhOESXVRHWWoG3uVpXyK/reBz0AocBwxHaTYTptgib7HfEvzj9PMccLrp MGIOduJYgoo29fBc+foaSSSfG70hm261D8BnMbcgP5WQs6Li4qAoeb3r6Nz/E5cbh4W1 ulXHrdDucI3FbNMSwO2IzqZFBMdQJorMHsBPcxjRvzRBnZP5Sb71rDmU+9tbwS2UChG8 1DpgHiSeI58Uc3ge546tPP3xuDhuT2bcEYI41X88TxEKdAuXtB16Ns24DIpyehNckHDB +pFA== 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=dDBqlX4WZtKkQnV2xjzn12HB2YcXzrSKPYjVGSXFypE=; b=FI+1MG5WuvhDGlegqQpplGKAq1IYxhXXvg3mVrbR95EhUTqD5cfS7ntEnh2CCwFrHI FlN5gNHqaIwYvF8OfO+ASw6CmDhQVN56ihhgprkd9byEK0V562L+TSBcdFNkw3Wsmd6O rnmdjXGTNlDHlob2AYCLi5Rv9mS4Ck3ONgoGJhLALvXhqq0WNWT5YG2Qwbpk1z2D4NgU UJD/TiDtzG4Fc1gM2pMaj1wMk+thBETrCjNOQfVPUWoVvB2vJGV0m9ycDe823tzvtBtJ 6uK4v2YT9SFbYgzIDnEU02NYifjI+8QRxCA7IWjEPgczR1VmnvniIOmAJY8dvLceLXIk /G3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=S9HmRLRd; 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 i205si3557918oih.257.2019.12.19.10.43.56; Thu, 19 Dec 2019 10:44:08 -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=S9HmRLRd; 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 S1728242AbfLSSlp (ORCPT + 99 others); Thu, 19 Dec 2019 13:41:45 -0500 Received: from mail.kernel.org ([198.145.29.99]:60722 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728560AbfLSSli (ORCPT ); Thu, 19 Dec 2019 13:41:38 -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 ED544206D7; Thu, 19 Dec 2019 18:41:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576780897; bh=GqAFOTv0a9RtHQ56hi09qCi4T7GetSCA3QHzEhxSVjs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S9HmRLRdVlp4sVrblvg52nnFF1TqtknATTrAO41RuKL9Il4Ik6CmELPtqWpXBsQtw 1D9+fP6/V6LnKQ6++89jryzRhf1HuhbAm/yi7CfdF0ok4yFzEdsttwt7JSNGncTXvh HZgGEJXWa/5jEEk849Naf8CnbofXVO40y+Fohk64= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Max Filippov Subject: [PATCH 4.4 153/162] xtensa: fix TLB sanity checker Date: Thu, 19 Dec 2019 19:34:21 +0100 Message-Id: <20191219183217.085516474@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191219183150.477687052@linuxfoundation.org> References: <20191219183150.477687052@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: Max Filippov commit 36de10c4788efc6efe6ff9aa10d38cb7eea4c818 upstream. Virtual and translated addresses retrieved by the xtensa TLB sanity checker must be consistent, i.e. correspond to the same state of the checked TLB entry. KASAN shadow memory is mapped dynamically using auto-refill TLB entries and thus may change TLB state between the virtual and translated address retrieval, resulting in false TLB insanity report. Move read_xtlb_translation close to read_xtlb_virtual to make sure that read values are consistent. Cc: stable@vger.kernel.org Fixes: a99e07ee5e88 ("xtensa: check TLB sanity on return to userspace") Signed-off-by: Max Filippov Signed-off-by: Greg Kroah-Hartman --- arch/xtensa/mm/tlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/xtensa/mm/tlb.c +++ b/arch/xtensa/mm/tlb.c @@ -218,6 +218,8 @@ static int check_tlb_entry(unsigned w, u unsigned tlbidx = w | (e << PAGE_SHIFT); unsigned r0 = dtlb ? read_dtlb_virtual(tlbidx) : read_itlb_virtual(tlbidx); + unsigned r1 = dtlb ? + read_dtlb_translation(tlbidx) : read_itlb_translation(tlbidx); unsigned vpn = (r0 & PAGE_MASK) | (e << PAGE_SHIFT); unsigned pte = get_pte_for_vaddr(vpn); unsigned mm_asid = (get_rasid_register() >> 8) & ASID_MASK; @@ -233,8 +235,6 @@ static int check_tlb_entry(unsigned w, u } if (tlb_asid == mm_asid) { - unsigned r1 = dtlb ? read_dtlb_translation(tlbidx) : - read_itlb_translation(tlbidx); if ((pte ^ r1) & PAGE_MASK) { pr_err("%cTLB: way: %u, entry: %u, mapping: %08x->%08x, PTE: %08x\n", dtlb ? 'D' : 'I', w, e, r0, r1, pte);