Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3315358pxf; Mon, 15 Mar 2021 07:01:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQg+/x3kNg0WmD43If17WL2ZwLGNF2BvSNiyRulPULSzZAPFRYIr9bzQrV+YT9M4eQRpG7 X-Received: by 2002:a05:6402:3075:: with SMTP id bs21mr30242269edb.274.1615816862389; Mon, 15 Mar 2021 07:01:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615816862; cv=none; d=google.com; s=arc-20160816; b=cUN4KZ0XJswhyZH0JEiZB5ZoTj28CxgZOL772vzel48Dw/0uLgTfMNQezWsNK+LE+Z ecyOfsFGmvQWyGvMCQrykZXW1UYfPG1UkvqDy/7qUlM86OE6bR6JJ8gjV/RWskaHQaI9 bFLRBL5tAXLhiaY0CkZliRoesqfHUgiTmzg578Bq93YriouuksYwjR1KZOgN4STWyRdy EEwF/DTlcXDwwKLabVOTpOXBxKEtpByuQ59LzDFSGFaMPLDsAHXh+WOV1YHPEcVvlyR/ KfKi7pKbLKpQYK/EMaDAriLxSPWonsqAXhpDmHkYlVVLvZBXbRyPnkqcWUfSDedQSJtb 5ksQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=amQuXxO7CEcXL8HlGxfsi3HXVlmrCPxLGyGVEaxwYXE=; b=r1bi6Dr3c5nzEk/6n5Iw0oZGV0SQg3doJ4hhbAz9vACNN2N7XYJ78h8c10vhZhNt9U gwLFDKYVcleb/wbmh6xPHSaqLPTF+y3dJTCPMeYDKGx4O2qNjRmN+pps7+bF/0xutgmr St/coR4iGwpLCagamdkn5yrZhGQXfZqZItdU5uDOOZukWGgwVaPcIU7fRfx3KtEVO0qA 3UtD58h3bQRgumhYns1jN58L0jD7KYRNdRvJ8XROoZcXli44FEj/CWaV4Ofroo7BQt7n C8dp1lEo+j0pEPoq9OsDxSYPusJJjxTlBXEI2QrlMf5s97eTrCO3U3YFmrQw1YJR3Npn uvFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="XNh45/hb"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a13si11693827edn.209.2021.03.15.07.00.38; Mon, 15 Mar 2021 07:01:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="XNh45/hb"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230453AbhCON7t (ORCPT + 99 others); Mon, 15 Mar 2021 09:59:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:59286 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231627AbhCONy7 (ORCPT ); Mon, 15 Mar 2021 09:54:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4D52C64EE3; Mon, 15 Mar 2021 13:54:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816498; bh=UH8wfHJUhGSjAHiImjldg67Vme/we82x4qabwkFo8aU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XNh45/hbnEuzN6d6qXJUJNtyvM3Ta/FKOrCZAmWlNR142RmNv06O0sB6Tq4jYynTa oqQlWRiPB4BVYMtcCIA/mr+AqYL+65l8Xjnzj1bf1UOaB+Sc2SDKQTNXEdDldbIyxC /NrSR2LHpyeATjhsVWP+uR2pZakO/iJ+Do2V/TPw= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Auger , Marc Zyngier , Andrew Jones Subject: [PATCH 4.9 73/78] KVM: arm64: Fix exclusive limit for IPA size Date: Mon, 15 Mar 2021 14:52:36 +0100 Message-Id: <20210315135214.454159692@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135212.060847074@linuxfoundation.org> References: <20210315135212.060847074@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Greg Kroah-Hartman From: Marc Zyngier Commit 262b003d059c6671601a19057e9fe1a5e7f23722 upstream. When registering a memslot, we check the size and location of that memslot against the IPA size to ensure that we can provide guest access to the whole of the memory. Unfortunately, this check rejects memslot that end-up at the exact limit of the addressing capability for a given IPA size. For example, it refuses the creation of a 2GB memslot at 0x8000000 with a 32bit IPA space. Fix it by relaxing the check to accept a memslot reaching the limit of the IPA space. Fixes: c3058d5da222 ("arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE") Reviewed-by: Eric Auger Signed-off-by: Marc Zyngier Cc: stable@vger.kernel.org # 4.4, 4.9 Reviewed-by: Andrew Jones Link: https://lore.kernel.org/r/20210311100016.3830038-3-maz@kernel.org Signed-off-by: Greg Kroah-Hartman --- arch/arm/kvm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/arch/arm/kvm/mmu.c +++ b/arch/arm/kvm/mmu.c @@ -1834,7 +1834,7 @@ int kvm_arch_prepare_memory_region(struc * Prevent userspace from creating a memory region outside of the IPA * space addressable by the KVM guest IPA space. */ - if (memslot->base_gfn + memslot->npages >= + if (memslot->base_gfn + memslot->npages > (KVM_PHYS_SIZE >> PAGE_SHIFT)) return -EFAULT;