Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2286431ybl; Thu, 19 Dec 2019 11:02:08 -0800 (PST) X-Google-Smtp-Source: APXvYqymKOqb87lC1Ze4b3V2efgawgFw9WItdUEFIvmzWjFzAEpyqDId3sY9ZP9mOrN90uXt4tDa X-Received: by 2002:aca:4a87:: with SMTP id x129mr2723852oia.165.1576782128579; Thu, 19 Dec 2019 11:02:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576782128; cv=none; d=google.com; s=arc-20160816; b=pgJxmcMe31Voa4tdxuONtlSZBLXiHsRM7rRz1ea9iHZKiv/cD17cPZB1haMhWJQ/5+ UAgqLpA+s2y8zba4wsJ7mmFfy4BuUh92YuRiU2T2BpZtlwmf/p+kPuoZR16ICY14kZcX 5pYv8vEY5gsR95HvSXN/8SIB7FYTB0ND78E7I2rLE852Y1oAPKpTlU0xVwElkqIczOOo oDwGAGavN93gqt0RFUHvEKrJzs2VCSM0ySsq0n7ZtSrvsjoazawSE9a7lgw5r/Nfxhy5 yW9w9I105fkLa67JLhQTpd7QL3WwOdnC9r8x0jXP44FV6VHY9fS+JzXyBo/JYM5IBeix IRug== 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=9rH7vXJNc0NbdM+5LFqXEvagvURSWmzA2coyTa4GzbA=; b=tLqE8TDx4dXMz29lL93aist0/JO0OQCfz3ewXJCyrtWoLf5vjS+pxUDTH0OiUdYNTK N0KSS03q2i6g967FywinyMMHSTluk/AycpNlGsrn06wFEApiQGl7hGpfIiADSRWjCtVW Ep3H4j4efecHMjTRMCSCevKHWUigfK376d1UDbytJa1mP7isFKlnEVvsmjNneUPh0Q9P VQUB2bmJfR9S6gD8aJKiLnrvAXnicT8vLEnAerIWY459Nv5XoNR4Wwez9hdPU4u35lSy mE5YU2mIZl0hTBSVz4SDxGZiP9L+R+nr1mPM7x2KgxRXXSUUi5M1B/xItWrNg9uQFzwe u0pQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dZugztOw; 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 s26si3707535otr.38.2019.12.19.11.01.44; Thu, 19 Dec 2019 11:02: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=dZugztOw; 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 S1728752AbfLSTAW (ORCPT + 99 others); Thu, 19 Dec 2019 14:00:22 -0500 Received: from mail.kernel.org ([198.145.29.99]:46728 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730238AbfLSSwN (ORCPT ); Thu, 19 Dec 2019 13:52:13 -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 06888227BF; Thu, 19 Dec 2019 18:52:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576781532; bh=CAsP/cz+uN6p3m+stKxFiBXB48v0Z5X4p7HEq9Umdws=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dZugztOwSl+NStGeVDEY1AIQalLzKVqNNcXAUr+iks+RPUTEw7IJ3vQJqEyhl2ag0 mIcKdKkuzi9JFzCXY5mn4qM+I1cuPI2OOKhe76elaGTzTeSeQhIWQ4+slIJAPQgkfw J82sO6ZxBrVc0KzPP/FBTiYXZHU8sTeZuDj8UHRY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Max Filippov Subject: [PATCH 4.19 23/47] xtensa: fix TLB sanity checker Date: Thu, 19 Dec 2019 19:34:37 +0100 Message-Id: <20191219182927.391060732@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191219182857.659088743@linuxfoundation.org> References: <20191219182857.659088743@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 @@ -216,6 +216,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; @@ -231,8 +233,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);