Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1684181ybz; Thu, 16 Apr 2020 13:38:31 -0700 (PDT) X-Google-Smtp-Source: APiQypLSSumeQifSPany3WoG0UCYzRxnGSittdovV6YwsgiZm3nS0gGb/s9CcCkYRdyOg2UT/rgo X-Received: by 2002:a17:906:160a:: with SMTP id m10mr11087232ejd.8.1587069511574; Thu, 16 Apr 2020 13:38:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587069511; cv=none; d=google.com; s=arc-20160816; b=zC7zjCfgTWkwlg0TfsqQ6Gth+gldy/fzDcod/CRACAcqeeOb61Yq2Jr4hRR+fmU3TI T5HxQ7xoWASZai6J59Ey8fvZgj8vaE0AvRYlrX9EEKSWo243cHqKfpxd11+JUkoEQaZT Ndtik6EdS2mSh9cjl8u226a17wZOkWP8sdPLR2gnwfw4bS4TDMRIpRO+dkIGR50G5bzH b91oPhxodQuK2iwghNPNMQjF0kJu8lGVM/8YWh5m3TURTOW5UjgTYUnHePdOlUuhfzrc BMRAt9ifDRbIUXQI6JvK8uR6hgc2HUcKu4hbUPtzvgEHm95TMc8Q5zG8J1UOXHiZWuGM Py2w== 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=GQNFtysuZowFJjD2RPBqf/xSUJqss0NUuP9cXSG5yJ4=; b=AHXzHFENyx2bu/1mIsl2cyMXsu8GbVrtJxfuq97AkJRJcuTb3/gLCVnmKxzkOEoiGr 4suOa+TLgfBsx6FGqFX20vYquqsxC/uNS/wD/zH4Ka2GLG/W2Ejp3Xw35QuuuRWlAbS2 cK6/1E17SvAPXvdZ2XlcwETl3ax/DM9vtkx7JxCpt+uTRUsZ2ch96gZQxaj1mWR/Rv73 awvc0AzxKm3Pm59VHdhHAa7F4OuHghjclCddspWa7wkjZTKm7YO1EEY2ubJR/YV7Tx6Z MC82TmQ8b3NAGv0FGPWvJRo8cpGm3/Gwj9gFBK7g5JuWVzGtWDpxlgl9Wy1NaVT2sNMP a4xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=n34dG3zt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h22si12772624ejq.363.2020.04.16.13.38.08; Thu, 16 Apr 2020 13:38:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=n34dG3zt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442610AbgDPP4j (ORCPT + 99 others); Thu, 16 Apr 2020 11:56:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:38084 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2895879AbgDPN2v (ORCPT ); Thu, 16 Apr 2020 09:28:51 -0400 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 6271E206E9; Thu, 16 Apr 2020 13:28:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587043729; bh=0kYo+Ygoz8g+mwJNSuGqdJSweqANX1YCeMGUlk4MmN8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n34dG3ztWMgVyOTsYclzAingEhblf7dGD1KuzpnJkGBWKr+ylZF85ilfMDn75wDS6 xetSoYLC2etxHZDX0Vzgot0sheCOyQC6/iTgGgPz1dmBmQ2eLQYHTMLaE/HGDz8ONm aI1i99bghyHlRQw3fUWBpY+QGD8MafRV3vuBP+uQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pei Huang , Huacai Chen , Thomas Bogendoerfer Subject: [PATCH 4.19 074/146] MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3 Date: Thu, 16 Apr 2020 15:23:35 +0200 Message-Id: <20200416131253.069150894@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131242.353444678@linuxfoundation.org> References: <20200416131242.353444678@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: Huacai Chen commit d191aaffe3687d1e73e644c185f5f0550ec242b5 upstream. LDDIR/LDPTE is Loongson-3's acceleration for Page Table Walking. If BD (Base Directory, the 4th page directory) is not enabled, then GDOffset is biased by BadVAddr[63:62]. So, if GDOffset (aka. BadVAddr[47:36] for Loongson-3) is big enough, "0b11(BadVAddr[63:62])|BadVAddr[47:36]|...." can far beyond pg_swapper_dir. This means the pg_swapper_dir may NOT be accessed by LDDIR correctly, so fix it by set PWDirExt in CP0_PWCtl. Cc: Signed-off-by: Pei Huang Signed-off-by: Huacai Chen Signed-off-by: Thomas Bogendoerfer Signed-off-by: Greg Kroah-Hartman --- arch/mips/mm/tlbex.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c @@ -1479,6 +1479,7 @@ static void build_r4000_tlb_refill_handl static void setup_pw(void) { + unsigned int pwctl; unsigned long pgd_i, pgd_w; #ifndef __PAGETABLE_PMD_FOLDED unsigned long pmd_i, pmd_w; @@ -1505,6 +1506,7 @@ static void setup_pw(void) pte_i = ilog2(_PAGE_GLOBAL); pte_w = 0; + pwctl = 1 << 30; /* Set PWDirExt */ #ifndef __PAGETABLE_PMD_FOLDED write_c0_pwfield(pgd_i << 24 | pmd_i << 12 | pt_i << 6 | pte_i); @@ -1515,8 +1517,9 @@ static void setup_pw(void) #endif #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT - write_c0_pwctl(1 << 6 | psn); + pwctl |= (1 << 6 | psn); #endif + write_c0_pwctl(pwctl); write_c0_kpgd((long)swapper_pg_dir); kscratch_used_mask |= (1 << 7); /* KScratch6 is used for KPGD */ }