Received: by 10.192.165.156 with SMTP id m28csp1023800imm; Thu, 19 Apr 2018 11:27:31 -0700 (PDT) X-Google-Smtp-Source: AIpwx49QYRGYkeM6rONuId24FNwnqsnHZQBGsR27CHGSEHWZQuqqNMjG6X2+HsK78G38ZpKioJNl X-Received: by 10.98.15.195 with SMTP id 64mr6728636pfp.63.1524162451805; Thu, 19 Apr 2018 11:27:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524162451; cv=none; d=google.com; s=arc-20160816; b=ETUnjtgi5V6hHA1niDDutgRzFG03ymYPKlZoaDU3/SNWAJ6wPWmNKdzaWE56OYBXK2 b7I622rrigslOJTXK+HgqFG1mXQNwH8fKJmo+pNbD7anAatI+OWq0lawkItYe8+Fia7R k2s1+RuOMKpHPk2g9VxE0MEJMaP2krmkHa8y7w6qg6agIV2ktc7+nlntrZKOTTqr83DP 8iyvWbAvq5+dfMho7T3cBGTUGHtRMmyl1S094v7nl03hGB0KeXUDKp1f5qY5XHB3cXsd I6zCNeDvlTZhxncq1NbgurPKiAGupSDwBuP+HzUnSf3ML1c6meRd04RkfWcGeUMEg3Nn Nsvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=CIyzEUCwV20j7xK9yX7+MdUFdMz02wMTAyiujVcIbT4=; b=xiYbxSwQLUiARaREawOLYwyv+QnPczmGIAYAMbiR399fdP6+PvdC7djwDukcmHW6/U cRWZkqLhNwXOQOoNcUgHMu5599fY3TGnlTA5aJdmxkyn2Kjsw8IoIs/qxagbMYEKuGFD y/mkbRrkIWxaF9NnUwoVHtc9Cc9wCavD248dekCbOYiNjI/ak8N2p5NJWOx9lqmKG1xi Q1xXwdT6Jy2lbEvUfWGcn0TMwzkFnDJQVEOlm/2PXp4ZlTXwcD/7f20BiwVbYQHS35rh FyqK1hsoHie/Etj9W2AQ/kVQlHLflLXmQHxgopHAUFZ3MWmzHn//GIiKi56o/mRYfVsP ldrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@8bytes.org header.s=mail-1 header.b=JRsxAN7S; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=8bytes.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i67si1435080pfi.95.2018.04.19.11.27.16; Thu, 19 Apr 2018 11:27:31 -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=fail (test mode) header.i=@8bytes.org header.s=mail-1 header.b=JRsxAN7S; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=8bytes.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753176AbeDSS0I (ORCPT + 99 others); Thu, 19 Apr 2018 14:26:08 -0400 Received: from 8bytes.org ([81.169.241.247]:51022 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752937AbeDSS0H (ORCPT ); Thu, 19 Apr 2018 14:26:07 -0400 Received: by theia.8bytes.org (Postfix, from userid 1000) id 9FE99459; Thu, 19 Apr 2018 20:26:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=8bytes.org; s=mail-1; t=1524162365; bh=3JpBt3mX6fqF9gMKNxhP70orHsoVwj4V8Mt2QST3oXQ=; h=From:To:Cc:Subject:Date:From; b=JRsxAN7SMiUNEalGoI2RPhW9a6/WGbcq35fc7lrvon79skuclx4RrNDECBMW5lPtt Ptl4LAmM2gxJo/nemtVWUCZTEdwD5dqkr1DqkrdKbyfeBRPrsUp2xGKxIgNvgeVTDe H44v4lRIx8Y0h9T+5o0WrX1eTzNOwuAzD1Pi4RTDIooF8ZUShf1EdlKr0jBel0Ja16 DKAQTHxauCfXEO91ojrG9G4Z4wNR4fCOMaRRovgrdYB+Ta5F3U+45xNptH10IF6Tai htJqQokweiRTcgbYDX75DXqVbo56rQ8C03fSUgFxEagoOlKbo109Bpcg0Qv8LvN77k v09UyFdxM4ciw== From: Joerg Roedel To: Thomas Gleixner , Ingo Molnar Cc: rjw@rjwysocki.net, pavel@ucw.cz, hpa@zytor.com, Michal Kubecek , Borislav Petkov , x86@kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Joerg Roedel Subject: [PATCH] x86/power/64: Fix page-table setup for temporary text mapping Date: Thu, 19 Apr 2018 20:26:00 +0200 Message-Id: <1524162360-26179-1-git-send-email-joro@8bytes.org> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Joerg Roedel When we have a 4-level page-table there is no p4d, so we map the pud in the pgd. The old code before commit fb43d6cb91ef already did that. With the change from above commit we end up with an invalid page-table which causes undefined behavior. In one report it caused triple faults. Fix it by changing the p4d back to pud so that we have a correct page-table. Reported-by: Borislav Petkov Fixes: fb43d6cb91ef ('x86/mm: Do not auto-massage page protections') Tested-by: Michal Kubecek Tested-by: Borislav Petkov Signed-off-by: Joerg Roedel --- arch/x86/power/hibernate_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index 48b14b534897..ccf4a49bb065 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -98,7 +98,7 @@ static int set_up_temporary_text_mapping(pgd_t *pgd) set_pgd(pgd + pgd_index(restore_jump_address), new_pgd); } else { /* No p4d for 4-level paging: point the pgd to the pud page table */ - pgd_t new_pgd = __pgd(__pa(p4d) | pgprot_val(pgtable_prot)); + pgd_t new_pgd = __pgd(__pa(pud) | pgprot_val(pgtable_prot)); set_pgd(pgd + pgd_index(restore_jump_address), new_pgd); } -- 2.13.6