From patchwork Fri Mar 10 21:27:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Al Viro X-Patchwork-Id: 67715 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1112864wrd; Fri, 10 Mar 2023 13:42:44 -0800 (PST) X-Google-Smtp-Source: AK7set+MD5jBE+tOdw+b32zOyojVFG0JMIxynPAxW6N6aLj6I81FHyDtJSPrkIvstTX0bkwegZI+ X-Received: by 2002:a17:903:2601:b0:19d:1fe3:4941 with SMTP id jd1-20020a170903260100b0019d1fe34941mr23424032plb.2.1678484564210; Fri, 10 Mar 2023 13:42:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678484564; cv=none; d=google.com; s=arc-20160816; b=dXHIMuxz/62Ithh45a/m2yXo/jdJA6D3hJ6/GQY+Gx6bhJbMI/SEfL2aUL5PTTZlg1 xklR6Kv5h3XNg4rvPr8ZE1riidO1A08r06ImmS1yZ18wVVfOUiC/hic5siwx54YGChbS f4DhnKjDvJcRqZlasoxC2V4CocfROxAZ/efia3inWnlPerBcpC2niFVw9xKlAvbB6g7t c9UH2auS2uOgAbnmtRIbXpj3vvTadhKwcpRzb6YBZmzZtnpctYBYiY9ldAC3Riu+/kcJ 9MCB5tphOrzZpFTPcnusKDZdROCgkuy0bVi675zk5UoUTjdobjwaabt746ZrrmNcTXdw p00g== 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=MjWtbXIr3ZIOZlsm6oE+PQ2DYSkc5668Tc5HBu81c+E=; b=hkZ9ng0YPimDy3RuzBMkcJeUfIRa9DRszqTDLCLjwiQPdXmBeU47AJrdQf7FAS8/Sf bUGY3qsTBD4F/S/jNIA4DnWk3pQetV7SsKPCYg6RohnB/BOQ1M/2TS/ImnZlbmDnOsv9 OaMOPIiG/6ZEVoQDcye32pkuM7Dffb7USMbjGjiY9HqRpR7NlkXP0Sy0OU31W43pw6jN 4RNQoDfQVidxW86NxO6WeeKpKF9DI3GOUt24k0x6+OskJoQKtLPjO23c2OcQgBNuH/uR HO0OBMotYCnAkYSk5pwOVsYy3bTPS9JllO2ExG/S5Y2VqBCT4GFzdd+hEvFRNBDx5Eo0 hIGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=ZS6gePoh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q16-20020a170902dad000b0019cb537a8bdsi777449plx.552.2023.03.10.13.42.29; Fri, 10 Mar 2023 13:42:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=ZS6gePoh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231871AbjCJV2J (ORCPT + 99 others); Fri, 10 Mar 2023 16:28:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231737AbjCJV1w (ORCPT ); Fri, 10 Mar 2023 16:27:52 -0500 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [IPv6:2a03:a000:7:0:5054:ff:fe1c:15ff]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E47428F72D; Fri, 10 Mar 2023 13:27:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=MjWtbXIr3ZIOZlsm6oE+PQ2DYSkc5668Tc5HBu81c+E=; b=ZS6gePohdN9NDNj+GqtoEZXeu2 icKOCAnRc6Jidl47vAtcOut12gfhOgQzcad3d/W25+Daotc5SiZ6zn+Jfh/sPzisq4eZbnFfvxbgU YhEvQI8v0+50EidpP6eKjjiwPZbfYfFDDDgZzMs9BYzv3gEnG2f6fb1oyZwwdAFExdy7I/EzgyC1z 9pXtbQ+sekY5EaAgjRA82ytNNTIV4fCHDWYcUVcadP0+NaowKoQwBMRJexzhzXAUXkmi3KAeMA39d hjLOUS4vjV1gUEeU6XZXs7VFaf+4UM78PAUQ99gKJhD9FtXvCck0cvFLpiPO7Bi5NnCCjjAMa3pt0 kKnsn57A==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1pakHF-00FR68-1V; Fri, 10 Mar 2023 21:27:49 +0000 From: Al Viro To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 3/8] SVM-SEV: convert the rest of fget() uses to fdget() in there Date: Fri, 10 Mar 2023 21:27:43 +0000 Message-Id: <20230310212748.3679076-3-viro@zeniv.linux.org.uk> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230310212748.3679076-1-viro@zeniv.linux.org.uk> References: <20230310212536.GX3390869@ZenIV> <20230310212748.3679076-1-viro@zeniv.linux.org.uk> MIME-Version: 1.0 Sender: Al Viro X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760018630355069767?= X-GMAIL-MSGID: =?utf-8?q?1760018630355069767?= Signed-off-by: Al Viro --- arch/x86/kvm/svm/sev.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index c25aeb550cd9..52398d49bc2f 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -1767,18 +1767,20 @@ int sev_vm_move_enc_context_from(struct kvm *kvm, unsigned int source_fd) { struct kvm_sev_info *dst_sev = &to_kvm_svm(kvm)->sev_info; struct kvm_sev_info *src_sev, *cg_cleanup_sev; - struct file *source_kvm_file; + struct fd f = fdget(source_fd); struct kvm *source_kvm; bool charged = false; int ret; - source_kvm_file = fget(source_fd); - if (!file_is_kvm(source_kvm_file)) { + if (!f.file) + return -EBADF; + + if (!file_is_kvm(f.file)) { ret = -EBADF; goto out_fput; } - source_kvm = source_kvm_file->private_data; + source_kvm = f.file->private_data; ret = sev_lock_two_vms(kvm, source_kvm); if (ret) goto out_fput; @@ -1828,8 +1830,7 @@ int sev_vm_move_enc_context_from(struct kvm *kvm, unsigned int source_fd) out_unlock: sev_unlock_two_vms(kvm, source_kvm); out_fput: - if (source_kvm_file) - fput(source_kvm_file); + fdput(f); return ret; } @@ -2046,18 +2047,20 @@ int sev_mem_enc_unregister_region(struct kvm *kvm, int sev_vm_copy_enc_context_from(struct kvm *kvm, unsigned int source_fd) { - struct file *source_kvm_file; + struct fd f = fdget(source_fd); struct kvm *source_kvm; struct kvm_sev_info *source_sev, *mirror_sev; int ret; - source_kvm_file = fget(source_fd); - if (!file_is_kvm(source_kvm_file)) { + if (!f.file) + return -EBADF; + + if (!file_is_kvm(f.file)) { ret = -EBADF; goto e_source_fput; } - source_kvm = source_kvm_file->private_data; + source_kvm = f.file->private_data; ret = sev_lock_two_vms(kvm, source_kvm); if (ret) goto e_source_fput; @@ -2103,8 +2106,7 @@ int sev_vm_copy_enc_context_from(struct kvm *kvm, unsigned int source_fd) e_unlock: sev_unlock_two_vms(kvm, source_kvm); e_source_fput: - if (source_kvm_file) - fput(source_kvm_file); + fdput(f); return ret; }