From patchwork Mon May 21 04:09:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: simon X-Patchwork-Id: 10413953 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 249146016C for ; Mon, 21 May 2018 04:46:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1553127F8F for ; Mon, 21 May 2018 04:46:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0A69128779; Mon, 21 May 2018 04:46:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A061127F8F for ; Mon, 21 May 2018 04:46:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752850AbeEUEq5 (ORCPT ); Mon, 21 May 2018 00:46:57 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:40976 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751643AbeEUEqb (ORCPT ); Mon, 21 May 2018 00:46:31 -0400 Received: by mail-pg0-f67.google.com with SMTP id d14-v6so2220576pgv.8; Sun, 20 May 2018 21:46:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EFLZOJy1G5yhrClJTNyV3OBDskYj3PqhJZNirmxcU/o=; b=jArBEJrhdCCp8OdVV6v00ZLDmoZGFIoJh8UPViL1/sZIJ8CaECUR1HNzw0xTF/Z1v3 29QBrq5PhoLh4aM/CC56IehsqIDUmQVG9HH3+a4nE5JinYmCywZZUPouo+Zeq8oiRm5G 93PATp4hIFaaq7CCPfYbbmo88JBhff6Z6gxMlUiXCBcfHeiEQ8DXUDCkkk11rsJTw+gG 9tkppSfMRTTCwEdjH5WijbIT8+/CbkHnhSyyny4Om+mQUW2Nk1UjbkSBX3y1DuaKfVNa 9QdjMNMPTVjpAQM8PG8JdN7AkXRxT2Hb/Z4h9maBF642UrGRiZVEGPAA2N8SV7xgNI32 p2rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EFLZOJy1G5yhrClJTNyV3OBDskYj3PqhJZNirmxcU/o=; b=JtxlHbAeF5px9Qj6cx2ksUlT1Nf18rTQBZ0XTba2bf7E27Q8OL+tL2RDpaOtVNcjdP gts/xE7X32nTDTC421xROqWYofuvSHiZmlgzPNvXVGZ/8ALnRHB1Sfxwqkv8nZ/10qzP YVTX9rasZ7ka1qrUE8DcpsI3NKx0odyfpzkbsAA0nOD4cZwB7bmkJyHfhopl0zZBmzUi gzww+UYe9n4ibnGtp+8aL/O78LARezQMuOYrsm2XPIGEq52rCWkNn20NmE6SFMRotvFJ mFo7MUH3r/tyPyiKBVWWefuVUQI7tmEamHW7I9p5MQtUP16aM9Fbry7PiiLgeIl72Z3p a24g== X-Gm-Message-State: ALKqPwdBEP5Z61LDsFYoKXHgQRvrPxmoTOJBUj5sjOIpmcRAuHZjRXUN vxqNsdxonznBLVWiQ9ae7MjOBQ== X-Google-Smtp-Source: AB8JxZrUhy6oe+Zi3tI3xYVQ0SmcaEJ3eCWBfyQXs22jKjvAq2VGXeovQbeAVD3PcoH1IpzaY4UEAQ== X-Received: by 2002:a65:6354:: with SMTP id p20-v6mr14746522pgv.437.1526877990926; Sun, 20 May 2018 21:46:30 -0700 (PDT) Received: from simonLocalRHEL7.cn.ibm.com ([112.73.0.89]) by smtp.gmail.com with ESMTPSA id t14-v6sm24575514pfa.31.2018.05.20.21.46.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 May 2018 21:46:30 -0700 (PDT) From: wei.guo.simon@gmail.com To: linuxppc-dev@lists.ozlabs.org Cc: Paul Mackerras , kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, Simon Guo Subject: [PATCH v3 26/29] KVM: PPC: move vcpu_load/vcpu_put down to each ioctl case in kvm_arch_vcpu_ioctl Date: Mon, 21 May 2018 12:09:43 +0800 Message-Id: <1526875786-10372-27-git-send-email-wei.guo.simon@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1526875786-10372-1-git-send-email-wei.guo.simon@gmail.com> References: <1526875786-10372-1-git-send-email-wei.guo.simon@gmail.com> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Simon Guo Although we already have kvm_arch_vcpu_async_ioctl() which doesn't require ioctl to load vcpu, the sync ioctl code need to be cleaned up when CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL is not configured. This patch moves vcpu_load/vcpu_put down to each ioctl switch case so that each ioctl can decide to do vcpu_load/vcpu_put or not independently. Signed-off-by: Simon Guo --- arch/powerpc/kvm/powerpc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index 1fa5bbe..c9098ff 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c @@ -1783,16 +1783,16 @@ long kvm_arch_vcpu_ioctl(struct file *filp, void __user *argp = (void __user *)arg; long r; - vcpu_load(vcpu); - switch (ioctl) { case KVM_ENABLE_CAP: { struct kvm_enable_cap cap; r = -EFAULT; + vcpu_load(vcpu); if (copy_from_user(&cap, argp, sizeof(cap))) goto out; r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap); + vcpu_put(vcpu); break; } @@ -1801,12 +1801,14 @@ long kvm_arch_vcpu_ioctl(struct file *filp, { struct kvm_one_reg reg; r = -EFAULT; + vcpu_load(vcpu); if (copy_from_user(®, argp, sizeof(reg))) goto out; if (ioctl == KVM_SET_ONE_REG) r = kvm_vcpu_ioctl_set_one_reg(vcpu, ®); else r = kvm_vcpu_ioctl_get_one_reg(vcpu, ®); + vcpu_put(vcpu); break; } @@ -1814,9 +1816,11 @@ long kvm_arch_vcpu_ioctl(struct file *filp, case KVM_DIRTY_TLB: { struct kvm_dirty_tlb dirty; r = -EFAULT; + vcpu_load(vcpu); if (copy_from_user(&dirty, argp, sizeof(dirty))) goto out; r = kvm_vcpu_ioctl_dirty_tlb(vcpu, &dirty); + vcpu_put(vcpu); break; } #endif @@ -1825,7 +1829,6 @@ long kvm_arch_vcpu_ioctl(struct file *filp, } out: - vcpu_put(vcpu); return r; }