Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1103479pxb; Sun, 7 Mar 2021 06:24:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJyy717oBn8s42xMCZsz3Ynqion01RPZA1MAfQP3cT4crlnAm8upogIMarj6CI84tYjr4+28 X-Received: by 2002:aa7:c889:: with SMTP id p9mr17721985eds.82.1615127054181; Sun, 07 Mar 2021 06:24:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615127054; cv=none; d=google.com; s=arc-20160816; b=gshFx+w3zOGDtPDjWCtd4jGpZTSskfnsCjuCVCp0HMVvjBjhhOLaoUTsAIlP1m+M5A St51Sp54Di9s7u/AbqINA+Y2JMNcVnEawgC4Rj1FDeredlK58wbizoUFd1bq5bzrHmPv e08+dk7Sb6I22ezKVR4qOvT/zVdgiQCbx92vzXuL5OuFAyy7w7LtWBt3GnN62Y/D7/pY RqmHX8s5U1DV0jEMTu3HzIitgsd8C2FZcE++nm9pOHbhW05UQVQi8I1NFNsb25WkhDF1 AajU/JDZoiOaRePdoKRgQk2rP3oeI252SOc8qP3FTOUWFtFHED9zWYpthoZochD79X75 QHVQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aVHFDGtPnJJGsEXYel8xyYE1ncKpzB19pMdzkZkAnp8=; b=mYeJvrJQVUrS/2GTXgnduMOhgRMEGHFsCC0UiKWeBIU4Z9Zsr2Sb7aenuDjQ07UjSY xjT8th3vKqITunSqcvWUNDOHMBY9PUPcjdazWgbGT2Hv4XxQ6L2ysCut//LiaMCJjuqS uQMrLwABXuKxIf23mC9miWtt8zdAPjTtfNYUtzOnsdJwHrMgatMsSP1D9VcmcnZ1Vet0 UoqFk/1gT89LLyDpRbHwE/wdcHVdCw6pPfm4RR5tElqwCppNYWF5DM1BLNaDe8OrAJ78 3A9tnVH7qnQG6PWWf3xBQk+qVVaAMOPwM4+EzaHFFY9KmSVxpDz8epExCWh8KV5ssgoz JADw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=i7AlBR0p; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m21si5040631ejx.725.2021.03.07.06.23.51; Sun, 07 Mar 2021 06:24:14 -0800 (PST) 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=@kernel.org header.s=k20201202 header.b=i7AlBR0p; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231660AbhCGN6R (ORCPT + 99 others); Sun, 7 Mar 2021 08:58:17 -0500 Received: from mail.kernel.org ([198.145.29.99]:43548 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231512AbhCGN5w (ORCPT ); Sun, 7 Mar 2021 08:57:52 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2191565105; Sun, 7 Mar 2021 13:57:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1615125471; bh=9TCSJgcR6u2SdCY9KvCmvnAp+LuBrYghyXysTkfVj8k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i7AlBR0p8RgmZ4JO2SVfz03PcpLyfJroey8nLtjVLDyd14gT31l1kct0P3f3Nq5D4 nlOZtg/LiqZNkPTVY3hr9lflRo4Wb38+13eFLkokuhXd/uto8HlGoselHGgki0mGDY ERWphI1bop7qeP6qstLet0MyrENoOO1gf1rpOUUSRIEW1hr8HdISf4WswooGsBsS3G Bak65PdApIHbu5Z1uwrVY1WkYYXm5BwKqXwbaztTBQhJ/1g81qHCCGr+3hsvrjwvLm vpC+9xTgVvImcPEVBtJsqfN9vnOO3RAGUnm7Qns0qohPEyuMn8Xj+c9BJFRuqDGki5 2GVAWkKHZjJyQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Aaron Lewis , Andrew Jones , Steve Rutherford , Paolo Bonzini , Sasha Levin , kvm@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH AUTOSEL 5.11 04/12] selftests: kvm: Mmap the entire vcpu mmap area Date: Sun, 7 Mar 2021 08:57:38 -0500 Message-Id: <20210307135746.967418-4-sashal@kernel.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210307135746.967418-1-sashal@kernel.org> References: <20210307135746.967418-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Aaron Lewis [ Upstream commit 6528fc0a11de3d16339cf17639e2f69a68fcaf4d ] The vcpu mmap area may consist of more than just the kvm_run struct. Allocate enough space for the entire vcpu mmap area. Without this, on x86, the PIO page, for example, will be missing. This is problematic when dealing with an unhandled exception from the guest as the exception vector will be incorrectly reported as 0x0. Message-Id: <20210210165035.3712489-1-aaronlewis@google.com> Reviewed-by: Andrew Jones Co-developed-by: Steve Rutherford Signed-off-by: Aaron Lewis Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- tools/testing/selftests/kvm/lib/kvm_util.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index fa5a90e6c6f0..859a0b57c683 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -21,6 +21,8 @@ #define KVM_UTIL_PGS_PER_HUGEPG 512 #define KVM_UTIL_MIN_PFN 2 +static int vcpu_mmap_sz(void); + /* Aligns x up to the next multiple of size. Size must be a power of 2. */ static void *align(void *x, size_t size) { @@ -509,7 +511,7 @@ static void vm_vcpu_rm(struct kvm_vm *vm, struct vcpu *vcpu) vcpu->dirty_gfns = NULL; } - ret = munmap(vcpu->state, sizeof(*vcpu->state)); + ret = munmap(vcpu->state, vcpu_mmap_sz()); TEST_ASSERT(ret == 0, "munmap of VCPU fd failed, rc: %i " "errno: %i", ret, errno); close(vcpu->fd); @@ -978,7 +980,7 @@ void vm_vcpu_add(struct kvm_vm *vm, uint32_t vcpuid) TEST_ASSERT(vcpu_mmap_sz() >= sizeof(*vcpu->state), "vcpu mmap size " "smaller than expected, vcpu_mmap_sz: %i expected_min: %zi", vcpu_mmap_sz(), sizeof(*vcpu->state)); - vcpu->state = (struct kvm_run *) mmap(NULL, sizeof(*vcpu->state), + vcpu->state = (struct kvm_run *) mmap(NULL, vcpu_mmap_sz(), PROT_READ | PROT_WRITE, MAP_SHARED, vcpu->fd, 0); TEST_ASSERT(vcpu->state != MAP_FAILED, "mmap vcpu_state failed, " "vcpu id: %u errno: %i", vcpuid, errno); -- 2.30.1