From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AIpwx4+B0UXn3EKBQEUI1H+IAJAMu8rjitcTYUIuUdmfa8/8bL3RVhyGYjiU0bXRcUG8sdQkBjdf ARC-Seal: i=1; a=rsa-sha256; t=1523892349; cv=none; d=google.com; s=arc-20160816; b=HJNHOTYP27RFCPUufMtG64+neZxa87Oh/u5fB0y1cn3ZEfrjyF1ONPq1D4Q+m3Co5s iNWRVh+JK0r8GXMAY4IgiSjV9iZGBVfQ1yd7LVMfjGUHKM8g+VK3dUm5JE1BM4728EMh HTrYmehvFJo9IkRJT9cHUVCjv/rAhcyG10voYcpbCOxEFbrLbQHZwRqFZmEVylL1Rn02 HDQTAJTlOyoQO2oDr3dXCJbyrSo7b6jlLKSGM053P8oVurPF74+QqeX2LLu2/f1eog0m z8rYNUHaYWMCbnY7337QhhyT7GRkgX8oQ1XOOIr1u+fgvsQ+kCiY25YtHptwvs0T9eiA AuKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=02ZYST3vL3TajOm1Vb8AN5LojMZtoSkZRi5vbIS2byQ=; b=B46wUFMRvzvnKOn0Il1fhcKKHtx0NG0tcTtgFAEYT0RvrJA0JOC+WOEy2R7Vxp0pbz xFBbaxrqz1SlOp/BNsmYJlauAdIgjrjupsDgPEELYrUG0rO6Gb+AFnVLnIhyv0/NfL6d jrI2CC55DXvrfRuSGw8kli+J5MAIug+VpbV14ZeoNRHnEZ/8IauFRXXa2Q7N1cqamK5v GnHaM+GEIupxuTJANqn0ElQO2I9XNO3Ue49U2aRRMuhEUEvi1xLgV89gPc949DorBOMk dnh5k5FHDNqfawmUni4/1jZ3qWqyhBDPMVhaal1+pLaLNlN2Ge3yN7+1LRWC3XB84EVE uRuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@8bytes.org header.s=mail-1 header.b=kL+pVzQM; spf=pass (google.com: domain of joro@8bytes.org designates 81.169.241.247 as permitted sender) smtp.mailfrom=joro@8bytes.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=8bytes.org Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@8bytes.org header.s=mail-1 header.b=kL+pVzQM; spf=pass (google.com: domain of joro@8bytes.org designates 81.169.241.247 as permitted sender) smtp.mailfrom=joro@8bytes.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=8bytes.org From: Joerg Roedel To: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" Cc: x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Linus Torvalds , Andy Lutomirski , Dave Hansen , Josh Poimboeuf , Juergen Gross , Peter Zijlstra , Borislav Petkov , Jiri Kosina , Boris Ostrovsky , Brian Gerst , David Laight , Denys Vlasenko , Eduardo Valentin , Greg KH , Will Deacon , aliguori@amazon.com, daniel.gruss@iaik.tugraz.at, hughd@google.com, keescook@google.com, Andrea Arcangeli , Waiman Long , Pavel Machek , "David H . Gutteridge" , jroedel@suse.de, joro@8bytes.org Subject: [PATCH 24/35] x86/mm/pti: Add an overflow check to pti_clone_pmds() Date: Mon, 16 Apr 2018 17:25:12 +0200 Message-Id: <1523892323-14741-25-git-send-email-joro@8bytes.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1523892323-14741-1-git-send-email-joro@8bytes.org> References: <1523892323-14741-1-git-send-email-joro@8bytes.org> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1597916943877679358?= X-GMAIL-MSGID: =?utf-8?q?1597916943877679358?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: From: Joerg Roedel The addr counter will overflow if we clone the last PMD of the address space, resulting in an endless loop. Check for that and bail out of the loop when it happens. Signed-off-by: Joerg Roedel --- arch/x86/mm/pti.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c index 9bea9c3..f967b51 100644 --- a/arch/x86/mm/pti.c +++ b/arch/x86/mm/pti.c @@ -297,6 +297,10 @@ pti_clone_pmds(unsigned long start, unsigned long end, pmdval_t clear) p4d_t *p4d; pud_t *pud; + /* Overflow check */ + if (addr < start) + break; + pgd = pgd_offset_k(addr); if (WARN_ON(pgd_none(*pgd))) return; -- 2.7.4