Received: by 10.192.165.148 with SMTP id m20csp2263266imm; Thu, 26 Apr 2018 08:15:48 -0700 (PDT) X-Google-Smtp-Source: AIpwx483lPtUorbbZ0NChBn00sTUGk2Xke8CuYziNxl6HW5yc3nnDel6yyqVp7xND68pBvj438FO X-Received: by 10.98.178.4 with SMTP id x4mr32062214pfe.21.1524755748653; Thu, 26 Apr 2018 08:15:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524755748; cv=none; d=google.com; s=arc-20160816; b=akg3DRsSWtE2CGjyxBEPRb4BZVl0PZBZEr2g7a3/MY0qGe0gQ2a75yq5jD6nmA+XZn a0TXmUiPBfXaGeLZ1M24EdhuFWR7foZup0f3ZCl2JT8+XDSimJ6LAQGp/RWUPFFdWObG RWaxOvtBdnl8djhzSlqCtbwPmL6rvFAJHoP0lPyYzWUeETsDCIOO5eSUGrPniPVmM68k XsFswbqZH3BjsRdhtvKNrgFBOL3PdNvrqG0CPYyU8okA+zJgE8V+H21MIFWXgVCo+O90 oHJuE3VwJNpuW5bD4vaY8Bgh7d8tpJnFxzC3YRPOb1jIhFpXcVHP71Muxn0wJMvfHAGg vKMw== 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=ENJElcTPK01UT912b/AMuAxcbndDfVbvixRsQ0Xc+9s=; b=SFH+hUR4/jQr28d1nZRFojNuPO5/3YVnvpimq062yotKlsWSlAIq5JHUmq4Q23MSpK wQkaUxKLYou+79xzwBaNNnIGOqN/L8Lm/RPyOfSF615y48uX0t+yX8q+AJf8AH592CHV NT1/qMHcG7bNE1zsXlJmtyNbt33gx8LGy4vtjeXpJJdyFCbfh/UuOuLCgs0Ta3WDyDy6 ctayxCFUNe69SN0UQTsh+LbgRyZPJWCepS5V7a4LVKMYdJquu52CiN0ckurU7k6uG+R5 b68PwYsYJoUWp2JlDsn/rv/zKopegUIwiKmZEvb253cRieI2HsLpeUDqZOYrLNrNMkXq AC5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@8bytes.org header.s=mail-1 header.b=h7RMp+P4; 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 p13-v6si19554409pll.416.2018.04.26.08.15.34; Thu, 26 Apr 2018 08:15:48 -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=h7RMp+P4; 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 S1756709AbeDZPOP (ORCPT + 99 others); Thu, 26 Apr 2018 11:14:15 -0400 Received: from 8bytes.org ([81.169.241.247]:52400 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755698AbeDZPOM (ORCPT ); Thu, 26 Apr 2018 11:14:12 -0400 Received: by theia.8bytes.org (Postfix, from userid 1000) id 898A01C6; Thu, 26 Apr 2018 17:14:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=8bytes.org; s=mail-1; t=1524755650; bh=T+VnM5blYfEQoqWfTx6yy6dHfbhvzLYkOafvz1fly9o=; h=From:To:Cc:Subject:Date:From; b=h7RMp+P43qbfyP3wyYZS5CraDXYDMNC0IVIXRtYCWYqLdvKpzAlE+cEIucZHyDIvN VnNw4aUqkKB8Sq+hKehWrOg+vN+KAbPUyCTjKz5/VDHs5FH+9Vznmhui1zJSmG0rG5 Ic346NHGqkVqYPHUbD8F9j3H2asCFGh3kgH87PSIM0wQlhdfGs9+e2UwRy3nvWrOO0 JUehWH8qCLoivVhHolhpVuUYelEO9VU72LGOBIxzhYC8HzftI7a9qJF+cUlWl21IjM DmcFjxMipW2g/ON126uihJxHCBoR5rKUaI5TpXwYbQl0CpyngqEvKyfPZdbDXLuRTB N+4Ss9jozO6bA== From: Joerg Roedel To: Thomas Gleixner , Ingo Molnar Cc: hpa@zytor.com, Michal Hocko , Borislav Petkov , Matthew Wilcox , stable@vger.kernel.org, Andrew Morton , linux-kernel@vger.kernel.org, x86@kernel.org, Toshi Kani , Joerg Roedel Subject: [PATCH] Revert "x86/mm: implement free pmd/pte page interfaces" Date: Thu, 26 Apr 2018 17:14:07 +0200 Message-Id: <1524755647-18695-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 This reverts commit 28ee90fe6048fa7b7ceaeb8831c0e4e454a4cf89. This commit is broken for x86, as it unmaps the PTE and PMD pages and immediatly frees them without doing a TLB flush. Further this lacks synchronization with other page-tables in the system when the PMD pages are not shared between mm_structs. On x86-32 with PAE and PTI patches on-top this patch triggers the BUG_ON in vmalloc_sync_one() because the kernel and the process page-table were not synchronized. Signed-off-by: Joerg Roedel --- arch/x86/mm/pgtable.c | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index ae98d4c5e32a..fd02a537a80f 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -787,22 +787,7 @@ int pmd_clear_huge(pmd_t *pmd) */ int pud_free_pmd_page(pud_t *pud) { - pmd_t *pmd; - int i; - - if (pud_none(*pud)) - return 1; - - pmd = (pmd_t *)pud_page_vaddr(*pud); - - for (i = 0; i < PTRS_PER_PMD; i++) - if (!pmd_free_pte_page(&pmd[i])) - return 0; - - pud_clear(pud); - free_page((unsigned long)pmd); - - return 1; + return pud_none(*pud); } /** @@ -814,15 +799,6 @@ int pud_free_pmd_page(pud_t *pud) */ int pmd_free_pte_page(pmd_t *pmd) { - pte_t *pte; - - if (pmd_none(*pmd)) - return 1; - - pte = (pte_t *)pmd_page_vaddr(*pmd); - pmd_clear(pmd); - free_page((unsigned long)pte); - - return 1; + return pmd_none(*pmd); } #endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */ -- 2.13.6