Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp5225232ybl; Tue, 27 Aug 2019 01:06:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqzBTSKVMB7W6OmPprcDjj/H/nkHr+jLIVBRhAQ8BjJnQASWtqkgFP9CjPXb1fvdw3kxCcCx X-Received: by 2002:a17:902:2b81:: with SMTP id l1mr23071960plb.107.1566893167215; Tue, 27 Aug 2019 01:06:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566893167; cv=none; d=google.com; s=arc-20160816; b=z4riufnOXbsjQI7AqdSRY0ybk+6xeX2dHcWUyxkplE48CdJV1SfEWBzMVmVWiUWcOb XDqyUGn9GseMj0VjnQI+D/29Fj0X2wvdgYlLb+5t1A/JJCj6j91zlUON+OvdbNJ8g+oc ZDDY0Kxi+xB80dUJq3K8pd+LlxpcZUrGKYkqA+lxNYvV3gn3WFF7oNLWKosFn5/c71GW VjUJV6y2qKgQN83d5yMbjlQSHKNd1NO+3BvOSCkzapVMDW0rv6LAkWmWY7PLPqKCTuz8 o1Y6kijI2A0wc2gpvQt2dXhW/czB22JbvG80X+v0uQp6TJKiPHJtaYmTvzzW/mCIkyq4 TSAA== 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=QKa0p4rqHojEultM3GEL1e4Y4TJ+l4/OkER2O6DC1R4=; b=bLZCTvlxCNgT1z1+I6CPjXawqmNoPzOR+2GP6MeoFesiHyAufL1dEWgpPSO5yLmfqR sHLjnM90LTtrufUXphIsi2/ykaDaAXrpwX8yZKk3BVejonTOkURtyF9UPlPF26ktcTjK bLXBTWMdi5KbE1m5nw12cU8R/kz4yxHVBZOKxuYxOUHxIfgkrdn+04QNudR3JdHYvrTG YJ7WpId/S+9Apra8C9pcdYHsFd11wCF0aFrP+eTJ/WI5ndPI2h7ftCeg5iYyiZU/gsd9 5cQNVZU7+5qw4BhsyJuvbVSDFEKksQVDTGacCxa+IqloxOwdqxy4+ZyLrLCJsmwkBetC qmog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Xh5yw2f6; 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 136si11281936pgg.354.2019.08.27.01.05.51; Tue, 27 Aug 2019 01:06:07 -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=Xh5yw2f6; 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 S1731785AbfH0ID0 (ORCPT + 99 others); Tue, 27 Aug 2019 04:03:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:60760 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730013AbfH0IDW (ORCPT ); Tue, 27 Aug 2019 04:03:22 -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 3319F206BA; Tue, 27 Aug 2019 08:03:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566893001; bh=QNmRNzZmyi9W7wx0iZIIn90kNrAJVSPD2Uik0FqlGRM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xh5yw2f67XobJzGR4nafUeMPOwzIwOLRcn0vqJMHafatMAOXMPNgaSepb20cWbIUH tzF54zUocwqlDOieqdsFpBhLq/gMRytLJfOhyXSPa1yAWn5+CYwBtcj1a4PyzUSstb JM9nSgiDQsiGmu0uc7XvmkEgQVFuT7xcZLTzm4rU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ilya Leoshkevich , Heiko Carstens , Vasily Gorbik , Sasha Levin Subject: [PATCH 5.2 086/162] s390/mm: fix dump_pagetables top level page table walking Date: Tue, 27 Aug 2019 09:50:14 +0200 Message-Id: <20190827072741.134664210@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190827072738.093683223@linuxfoundation.org> References: <20190827072738.093683223@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 [ Upstream commit 8024b5a9fc2bed9a00f0bdba60b443fa3cc4bb5d ] Since commit d1874a0c2805 ("s390/mm: make the pxd_offset functions more robust") behaviour of p4d_offset, pud_offset and pmd_offset has been changed so that they cannot be used to iterate through top level page table, because the index for the top level page table is now calculated in pgd_offset. To avoid dumping the very first region/segment top level table entry 2048 times simply iterate entry pointer like it is already done in other page walking cases. Fixes: d1874a0c2805 ("s390/mm: make the pxd_offset functions more robust") Reported-by: Ilya Leoshkevich Reviewed-by: Heiko Carstens Signed-off-by: Vasily Gorbik Signed-off-by: Sasha Levin --- arch/s390/mm/dump_pagetables.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/s390/mm/dump_pagetables.c b/arch/s390/mm/dump_pagetables.c index 3b93ba0b5d8d6..5d67b81c704a4 100644 --- a/arch/s390/mm/dump_pagetables.c +++ b/arch/s390/mm/dump_pagetables.c @@ -161,9 +161,9 @@ static void walk_pmd_level(struct seq_file *m, struct pg_state *st, } #endif - for (i = 0; i < PTRS_PER_PMD && addr < max_addr; i++) { + pmd = pmd_offset(pud, addr); + for (i = 0; i < PTRS_PER_PMD && addr < max_addr; i++, pmd++) { st->current_address = addr; - pmd = pmd_offset(pud, addr); if (!pmd_none(*pmd)) { if (pmd_large(*pmd)) { prot = pmd_val(*pmd) & @@ -192,9 +192,9 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, } #endif - for (i = 0; i < PTRS_PER_PUD && addr < max_addr; i++) { + pud = pud_offset(p4d, addr); + for (i = 0; i < PTRS_PER_PUD && addr < max_addr; i++, pud++) { st->current_address = addr; - pud = pud_offset(p4d, addr); if (!pud_none(*pud)) if (pud_large(*pud)) { prot = pud_val(*pud) & @@ -222,9 +222,9 @@ static void walk_p4d_level(struct seq_file *m, struct pg_state *st, } #endif - for (i = 0; i < PTRS_PER_P4D && addr < max_addr; i++) { + p4d = p4d_offset(pgd, addr); + for (i = 0; i < PTRS_PER_P4D && addr < max_addr; i++, p4d++) { st->current_address = addr; - p4d = p4d_offset(pgd, addr); if (!p4d_none(*p4d)) walk_pud_level(m, st, p4d, addr); else -- 2.20.1