Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp52357ybg; Mon, 8 Jun 2020 16:12:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzuyLY5yuje23N891PzOvuBFTcrMTLG8r4g1ms15axbGoaiJXY4fb1q/AkXhSyVEoDuN6nx X-Received: by 2002:a50:bb41:: with SMTP id y59mr23879169ede.311.1591657922614; Mon, 08 Jun 2020 16:12:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591657922; cv=none; d=google.com; s=arc-20160816; b=eax6J1At7vDSyKWB9ypQwO3Lhus6ZpndVDIz7HsV2QyeI7PnvuyIM+0QCHE5qsfGya Nelf3w5+4g6k4G2d0H02g49Pp/+9YRNwXAZ3ujHOLmW5n5ekbMo/sGpq3awTzFWWYa07 OxbYpdDD5oYefZakkn9O32kjZifLylx0hAkeduodtxtF2ulmwI2AexMrLBGziT2mpIrO /oO5NwbryeDpiR9oPr3x52jCZLHo1jC5Zd4IChIX9Ynl/TvoNf75G27GKUGde40aJm2c RZW28ksMh8ta6D+6GWqB1T4NIqpSyaVA+TSQJrHYlW3Rei+7zlapBik+UrZVFcfgXFYf plig== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=zd7+k55kDKtiC0Mejb+nNdkSsxUUipAFFhJturQY0Nk=; b=eN8+kuPXZ5r2Gy2X9cUQ36JrzpVl9zHaB7tmpHn4cywIQDlj1IetAQW/gWH0OfT5QI cQQKq005T9/JiwmIIIfAQA6lA1CaEj7KRLIGosBqkbLo0gTWX5PF502Dh9/d/Ty32qM9 3rpGdR+3T9aag8aRl09simAfFQXzU75BfzD5ovAOwhOBfnbEcl78w+XAVEaw6zM+nwg3 uYKtm3jXAwxRQT1Roxur10rRxYJf73ZI2ACXcP8Fq5HuKiogf4lXV+9dLC0S28HPzL69 3PV99noMi4ulBYILq6LaCWNH98wuS6mvRpBe5QQpgFwHVgymeFfYo2ZWvzhcVKrSS8g4 LO6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Xue1XR5D; 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 o13si9592410ejd.523.2020.06.08.16.11.39; Mon, 08 Jun 2020 16:12: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=@kernel.org header.s=default header.b=Xue1XR5D; 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 S1728310AbgFHXI7 (ORCPT + 99 others); Mon, 8 Jun 2020 19:08:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:52694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728044AbgFHXHy (ORCPT ); Mon, 8 Jun 2020 19:07:54 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5379720842; Mon, 8 Jun 2020 23:07:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591657674; bh=8uZj89EysRnr7CDvLiuKG1OmXk9XZZAADOB7HSB/dOM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xue1XR5Dgm7LLZtvscZR7J4GY9ok7bWoYfifSdpv9JJl4dEjwVKGfZkmmSuyoPNK6 92igR8nQWirt0qMUMqpFHj30c0CSvBK0LEvv2qEf9BHN+PEk39YO4V+N8qtLUn+8Vh wsSoEop2iN+ICmkg8a9gQXVyseZyzSGfHP8Rb7aI= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jon Doron , Vitaly Kuznetsov , Roman Kagan , Paolo Bonzini , Sasha Levin , kvm@vger.kernel.org, linux-doc@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 082/274] x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit Date: Mon, 8 Jun 2020 19:02:55 -0400 Message-Id: <20200608230607.3361041-82-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200608230607.3361041-1-sashal@kernel.org> References: <20200608230607.3361041-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jon Doron [ Upstream commit f7d31e65368aeef973fab788aa22c4f1d5a6af66 ] The problem the patch is trying to address is the fact that 'struct kvm_hyperv_exit' has different layout on when compiling in 32 and 64 bit modes. In 64-bit mode the default alignment boundary is 64 bits thus forcing extra gaps after 'type' and 'msr' but in 32-bit mode the boundary is at 32 bits thus no extra gaps. This is an issue as even when the kernel is 64 bit, the userspace using the interface can be both 32 and 64 bit but the same 32 bit userspace has to work with 32 bit kernel. The issue is fixed by forcing the 64 bit layout, this leads to ABI change for 32 bit builds and while we are obviously breaking '32 bit userspace with 32 bit kernel' case, we're fixing the '32 bit userspace with 64 bit kernel' one. As the interface has no (known) users and 32 bit KVM is rather baroque nowadays, this seems like a reasonable decision. Reviewed-by: Vitaly Kuznetsov Signed-off-by: Jon Doron Message-Id: <20200424113746.3473563-2-arilou@gmail.com> Reviewed-by: Roman Kagan Signed-off-by: Paolo Bonzini Signed-off-by: Sasha Levin --- Documentation/virt/kvm/api.rst | 2 ++ include/uapi/linux/kvm.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst index efbbe570aa9b..750d005a75bc 100644 --- a/Documentation/virt/kvm/api.rst +++ b/Documentation/virt/kvm/api.rst @@ -5067,9 +5067,11 @@ EOI was received. #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 428c7dde6b4b..9cdc5356f542 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -189,9 +189,11 @@ struct kvm_hyperv_exit { #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page; -- 2.25.1