Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp2484502imm; Mon, 24 Sep 2018 05:17:19 -0700 (PDT) X-Google-Smtp-Source: ACcGV63HGT3G9AX/NIv06QnRkZETYqRD+9j2lCi0EiWB1Wu9wQp96rqXVre+4FdkApxR+Z24a8Sx X-Received: by 2002:a63:c44a:: with SMTP id m10-v6mr9374291pgg.416.1537791439491; Mon, 24 Sep 2018 05:17:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1537791439; cv=none; d=google.com; s=arc-20160816; b=JZ9fhnz1DPvTO1AHTrkVv3qGIdFwL1dsJyYuiBGIc73j2rXRvnMOpcDJWm5xApIw2S fG3+9N6wDG+mmQrHaekVjmmFPX/mXDUMPqYrSKsGzj0wyZ3JZIUIiUJsyGXmhjFXhSjS 2us/25L+niH8oGpz1DVXvwYs8/zpK0Mt+43KiHV0EnEUxbQ9PhoRC473ur6N7mK4n8Nv pclGm+9rz0kj2MapKPWbXx+1DPHGdDoHzc0zYV0G7cAd07818M1aAOwoiyJJMAQYp3gK V1nrgQqp4IMXwit6SwOetcwyz50XPFWampBxSulLZjV6cwo13/q8XWNV9na9E5EJowV3 Wu4g== 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; bh=alSEjPXXyJQFMKGznH+ox1BWB0kspqWBemYhpoSzIh8=; b=s8FnydHzYUBziaCNZpCeF/kcVCtDeXn2yI8A8dciwLwaboQASuR+Yh3sJuD+rlY8Gm M1UZd6bYocjQOiIA2JWBo6i4rP109xPikG57VYCdbJ+jXL2eYwx4mDcvF832ToPpUnYJ H2KwtX7kD8ryCx0ufnreW9McWs8BJZj1irxo4xX3oUOEE+YBsUixvfDbJCjzeV+OxDKQ XehGvkZG5zswqR1X65jaMSMxknzHcHLOhAwbklVjtmBebV3AzT344K5DMK5qE60yp8h/ U6KPPiuHaTvmN7SvS4Mx74JbhL3MOP1+21ZdM5MAfZmpXlrRNBJfGIFyOPJQwJNvqbsR j4RA== ARC-Authentication-Results: i=1; mx.google.com; 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 d66-v6si36366853pfa.186.2018.09.24.05.17.03; Mon, 24 Sep 2018 05:17:19 -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; 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 S1732206AbeIXSSD (ORCPT + 99 others); Mon, 24 Sep 2018 14:18:03 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:55758 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730150AbeIXSSC (ORCPT ); Mon, 24 Sep 2018 14:18:02 -0400 Received: from localhost (ip-213-127-77-73.ip.prioritytelecom.net [213.127.77.73]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 1613310AA; Mon, 24 Sep 2018 12:16:11 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Joerg Roedel , Thomas Gleixner , Pavel Machek , "H . Peter Anvin" , 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 , Will Deacon , aliguori@amazon.com, daniel.gruss@iaik.tugraz.at, hughd@google.com, keescook@google.com, Andrea Arcangeli , Waiman Long , "David H . Gutteridge" , joro@8bytes.org, Sasha Levin Subject: [PATCH 4.14 073/173] x86/mm/pti: Add an overflow check to pti_clone_pmds() Date: Mon, 24 Sep 2018 13:51:47 +0200 Message-Id: <20180924113121.409580745@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180924113114.334025954@linuxfoundation.org> References: <20180924113114.334025954@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Joerg Roedel [ Upstream commit 935232ce28dfabff1171e5a7113b2d865fa9ee63 ] The addr counter will overflow if the last PMD of the address space is cloned, resulting in an endless loop. Check for that and bail out of the loop when it happens. Signed-off-by: Joerg Roedel Signed-off-by: Thomas Gleixner Tested-by: Pavel Machek Cc: "H . Peter Anvin" Cc: linux-mm@kvack.org Cc: Linus Torvalds Cc: Andy Lutomirski Cc: Dave Hansen Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Peter Zijlstra Cc: Borislav Petkov Cc: Jiri Kosina Cc: Boris Ostrovsky Cc: Brian Gerst Cc: David Laight Cc: Denys Vlasenko Cc: Eduardo Valentin Cc: Greg KH Cc: Will Deacon Cc: aliguori@amazon.com Cc: daniel.gruss@iaik.tugraz.at Cc: hughd@google.com Cc: keescook@google.com Cc: Andrea Arcangeli Cc: Waiman Long Cc: "David H . Gutteridge" Cc: joro@8bytes.org Link: https://lkml.kernel.org/r/1531906876-13451-25-git-send-email-joro@8bytes.org Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- arch/x86/mm/pti.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/arch/x86/mm/pti.c +++ b/arch/x86/mm/pti.c @@ -291,6 +291,10 @@ pti_clone_pmds(unsigned long start, unsi p4d_t *p4d; pud_t *pud; + /* Overflow check */ + if (addr < start) + break; + pgd = pgd_offset_k(addr); if (WARN_ON(pgd_none(*pgd))) return;