Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/842658/?format=api
{ "id": 842658, "url": "http://patchwork.ozlabs.org/api/patches/842658/?format=api", "web_url": "http://patchwork.ozlabs.org/project/kvm-ppc/patch/20171129164116.16167-12-christoffer.dall@linaro.org/", "project": { "id": 23, "url": "http://patchwork.ozlabs.org/api/projects/23/?format=api", "name": "KVM PowerPC development", "link_name": "kvm-ppc", "list_id": "kvm-ppc.vger.kernel.org", "list_email": "kvm-ppc@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20171129164116.16167-12-christoffer.dall@linaro.org>", "list_archive_url": null, "date": "2017-11-29T16:41:11", "name": "[v2,11/16] KVM: Move vcpu_load to arch-specific kvm_arch_vcpu_ioctl_set_guest_debug", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "f0ccf614a296881d56661eebedc62be3ae6cc7f1", "submitter": { "id": 26352, "url": "http://patchwork.ozlabs.org/api/people/26352/?format=api", "name": "Christoffer Dall", "email": "christoffer.dall@linaro.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/kvm-ppc/patch/20171129164116.16167-12-christoffer.dall@linaro.org/mbox/", "series": [ { "id": 15778, "url": "http://patchwork.ozlabs.org/api/series/15778/?format=api", "web_url": "http://patchwork.ozlabs.org/project/kvm-ppc/list/?series=15778", "date": "2017-11-29T16:41:00", "name": "Move vcpu_load and vcpu_put calls to arch code", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/15778/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/842658/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/842658/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<kvm-ppc-owner@vger.kernel.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=kvm-ppc-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"HbKGe7Nu\"; dkim-atps=neutral" ], "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yn5sp66yhz9t3w\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 30 Nov 2017 03:42:06 +1100 (AEDT)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S933783AbdK2QmF (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tWed, 29 Nov 2017 11:42:05 -0500", "from mail-wm0-f67.google.com ([74.125.82.67]:36846 \"EHLO\n\tmail-wm0-f67.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S933732AbdK2Qlj (ORCPT\n\t<rfc822;kvm-ppc@vger.kernel.org>); Wed, 29 Nov 2017 11:41:39 -0500", "by mail-wm0-f67.google.com with SMTP id b76so7248232wmg.1\n\tfor <kvm-ppc@vger.kernel.org>; Wed, 29 Nov 2017 08:41:38 -0800 (PST)", "from localhost.localdomain (x50d2404e.cust.hiper.dk.\n\t[80.210.64.78]) by smtp.gmail.com with ESMTPSA id\n\te71sm2080765wma.13.2017.11.29.08.41.36\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 29 Nov 2017 08:41:37 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=ot2pjWDbg4g8yfTQ5JaqfXtMXDPWcncXy2ioey4wymQ=;\n\tb=HbKGe7NuVNgOeJ3Ypz+SAsAuy3oBg3BjwEDWHX4Q0UZeKOa74u5PXlIZiO6s32/4Dr\n\ti0iGVRnRyZp1x2cAccKf1zsiykgfbWvv6b6RGxeV7q2275kQAuv+AytB134nPOIszUSG\n\tIbyJwlt5qcTug5qUcScPtwE+3VSGAJokLLUGQ=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=ot2pjWDbg4g8yfTQ5JaqfXtMXDPWcncXy2ioey4wymQ=;\n\tb=N2uJm4qL7IvosSUcZ9By1761iwSDFamCbfDyo7vWUPNcpJF0zppP5J5vOKm0XmJclT\n\tHFWE6w2yv8fkOXRjSiaPlniMHIh9JxPQgxCLuwMTzgtpyYrVOQjppCGn+vTvsJ8Jkf02\n\tLRiUEXQVX42ekgEYJ/V1LYGegVaHrYRn0FEyCy7DycggGzTjAzp1Qs70ACuQsSZ/cqz+\n\tuIfCNpTcjjpi9IFbELMLQf8CCtT33YllNAg89hGlSlqu8Ee5XIgbXCZeqYLA9VCCcBA2\n\tFd5FZ301CrBCy/qZ3+Mf282ieOnDFLFYZxAODw/MtppIy5LkUE5zzjuczOHxfCeQUy3d\n\tDrOw==", "X-Gm-Message-State": "AJaThX7hob+nHDp3FYDDUBAngWxzAII5ySSoghLHQ87uNk9PugpZe09L\n\tqTxdygzxqhSbTY3NV/EBpzGRVg==", "X-Google-Smtp-Source": "AGs4zMZkC0j0Mc1V2k52I0L40kv/lCsT8BG2cfVDIHF4iwfsQJ/eW+MhDjRzICAnlqqQ5oKtYHP09Q==", "X-Received": "by 10.28.149.203 with SMTP id x194mr2810369wmd.145.1511973697982;\n\tWed, 29 Nov 2017 08:41:37 -0800 (PST)", "From": "Christoffer Dall <christoffer.dall@linaro.org>", "To": "kvm@vger.kernel.org", "Cc": "Andrew Jones <drjones@redhat.com>, Christoffer Dall\n\t<christoffer.dall@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>,\n\t=?utf-8?b?UmFkaW0gS3LEjW3DocWZ?= <rkrcmar@redhat.com>,\n\tMarc Zyngier <marc.zyngier@arm.com>, kvmarm@lists.cs.columbia.edu,\n\tlinux-arm-kernel@lists.infradead.org, James Hogan <jhogan@kernel.org>,\n\tlinux-mips@linux-mips.org, Alexander Graf <agraf@suse.com>,\n\tkvm-ppc@vger.kernel.org, \n\tChristian Borntraeger <borntraeger@de.ibm.com>, Cornelia Huck\n\t<cohuck@redhat.com>, linux-s390@vger.kernel.org", "Subject": "[PATCH v2 11/16] KVM: Move vcpu_load to arch-specific\n\tkvm_arch_vcpu_ioctl_set_guest_debug", "Date": "Wed, 29 Nov 2017 17:41:11 +0100", "Message-Id": "<20171129164116.16167-12-christoffer.dall@linaro.org>", "X-Mailer": "git-send-email 2.14.2", "In-Reply-To": "<20171129164116.16167-1-christoffer.dall@linaro.org>", "References": "<20171129164116.16167-1-christoffer.dall@linaro.org>", "Sender": "kvm-ppc-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<kvm-ppc.vger.kernel.org>", "X-Mailing-List": "kvm-ppc@vger.kernel.org" }, "content": "Move vcpu_load() and vcpu_put() into the architecture specific\nimplementations of kvm_arch_vcpu_ioctl_set_guest_debug().\n\nSigned-off-by: Christoffer Dall <christoffer.dall@linaro.org>\n---\n arch/arm64/kvm/guest.c | 15 ++++++++++++---\n arch/powerpc/kvm/book3s.c | 2 ++\n arch/powerpc/kvm/booke.c | 19 +++++++++++++------\n arch/s390/kvm/kvm-s390.c | 16 ++++++++++++----\n arch/x86/kvm/x86.c | 4 +++-\n virt/kvm/kvm_main.c | 2 --\n 6 files changed, 42 insertions(+), 16 deletions(-)", "diff": "diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c\nindex 5c7f657..d7e3299 100644\n--- a/arch/arm64/kvm/guest.c\n+++ b/arch/arm64/kvm/guest.c\n@@ -361,10 +361,16 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,\n int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \t\t\t\t\tstruct kvm_guest_debug *dbg)\n {\n+\tint ret = 0;\n+\n+\tvcpu_load(vcpu);\n+\n \ttrace_kvm_set_guest_debug(vcpu, dbg->control);\n \n-\tif (dbg->control & ~KVM_GUESTDBG_VALID_MASK)\n-\t\treturn -EINVAL;\n+\tif (dbg->control & ~KVM_GUESTDBG_VALID_MASK) {\n+\t\tret = -EINVAL;\n+\t\tgoto out;\n+\t}\n \n \tif (dbg->control & KVM_GUESTDBG_ENABLE) {\n \t\tvcpu->guest_debug = dbg->control;\n@@ -378,7 +384,10 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \t\t/* If not enabled clear all flags */\n \t\tvcpu->guest_debug = 0;\n \t}\n-\treturn 0;\n+\n+out:\n+\tvcpu_put(vcpu);\n+\treturn ret;\n }\n \n int kvm_arm_vcpu_arch_set_attr(struct kvm_vcpu *vcpu,\ndiff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c\nindex 0476516..234531d 100644\n--- a/arch/powerpc/kvm/book3s.c\n+++ b/arch/powerpc/kvm/book3s.c\n@@ -755,7 +755,9 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,\n int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \t\t\t\t\tstruct kvm_guest_debug *dbg)\n {\n+\tvcpu_load(vcpu);\n \tvcpu->guest_debug = dbg->control;\n+\tvcpu_put(vcpu);\n \treturn 0;\n }\n \ndiff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c\nindex 1b491b8..7cb0e26 100644\n--- a/arch/powerpc/kvm/booke.c\n+++ b/arch/powerpc/kvm/booke.c\n@@ -2018,12 +2018,15 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n {\n \tstruct debug_reg *dbg_reg;\n \tint n, b = 0, w = 0;\n+\tint ret = 0;\n+\n+\tvcpu_load(vcpu);\n \n \tif (!(dbg->control & KVM_GUESTDBG_ENABLE)) {\n \t\tvcpu->arch.dbg_reg.dbcr0 = 0;\n \t\tvcpu->guest_debug = 0;\n \t\tkvm_guest_protect_msr(vcpu, MSR_DE, false);\n-\t\treturn 0;\n+\t\tgoto out;\n \t}\n \n \tkvm_guest_protect_msr(vcpu, MSR_DE, true);\n@@ -2055,8 +2058,9 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n #endif\n \n \tif (!(vcpu->guest_debug & KVM_GUESTDBG_USE_HW_BP))\n-\t\treturn 0;\n+\t\tgoto out;\n \n+\tret = -EINVAL;\n \tfor (n = 0; n < (KVMPPC_BOOKE_IAC_NUM + KVMPPC_BOOKE_DAC_NUM); n++) {\n \t\tuint64_t addr = dbg->arch.bp[n].addr;\n \t\tuint32_t type = dbg->arch.bp[n].type;\n@@ -2067,21 +2071,24 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \t\tif (type & ~(KVMPPC_DEBUG_WATCH_READ |\n \t\t\t KVMPPC_DEBUG_WATCH_WRITE |\n \t\t\t KVMPPC_DEBUG_BREAKPOINT))\n-\t\t\treturn -EINVAL;\n+\t\t\tgoto out;\n \n \t\tif (type & KVMPPC_DEBUG_BREAKPOINT) {\n \t\t\t/* Setting H/W breakpoint */\n \t\t\tif (kvmppc_booke_add_breakpoint(dbg_reg, addr, b++))\n-\t\t\t\treturn -EINVAL;\n+\t\t\t\tgoto out;\n \t\t} else {\n \t\t\t/* Setting H/W watchpoint */\n \t\t\tif (kvmppc_booke_add_watchpoint(dbg_reg, addr,\n \t\t\t\t\t\t\ttype, w++))\n-\t\t\t\treturn -EINVAL;\n+\t\t\t\tgoto out;\n \t\t}\n \t}\n \n-\treturn 0;\n+\tret = 0;\n+out:\n+\tvcpu_put(vcpu);\n+\treturn ret;\n }\n \n void kvmppc_booke_vcpu_load(struct kvm_vcpu *vcpu, int cpu)\ndiff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c\nindex 8fade85..4bf80b5 100644\n--- a/arch/s390/kvm/kvm-s390.c\n+++ b/arch/s390/kvm/kvm-s390.c\n@@ -2804,13 +2804,19 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n {\n \tint rc = 0;\n \n+\tvcpu_load(vcpu);\n+\n \tvcpu->guest_debug = 0;\n \tkvm_s390_clear_bp_data(vcpu);\n \n-\tif (dbg->control & ~VALID_GUESTDBG_FLAGS)\n-\t\treturn -EINVAL;\n-\tif (!sclp.has_gpere)\n-\t\treturn -EINVAL;\n+\tif (dbg->control & ~VALID_GUESTDBG_FLAGS) {\n+\t\trc = -EINVAL;\n+\t\tgoto out;\n+\t}\n+\tif (!sclp.has_gpere) {\n+\t\trc = -EINVAL;\n+\t\tgoto out;\n+\t}\n \n \tif (dbg->control & KVM_GUESTDBG_ENABLE) {\n \t\tvcpu->guest_debug = dbg->control;\n@@ -2830,6 +2836,8 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \t\tatomic_andnot(CPUSTAT_P, &vcpu->arch.sie_block->cpuflags);\n \t}\n \n+out:\n+\tvcpu_put(vcpu);\n \treturn rc;\n }\n \ndiff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c\nindex eb70974..a074b0bd 100644\n--- a/arch/x86/kvm/x86.c\n+++ b/arch/x86/kvm/x86.c\n@@ -7602,6 +7602,8 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \tunsigned long rflags;\n \tint i, r;\n \n+\tvcpu_load(vcpu);\n+\n \tif (dbg->control & (KVM_GUESTDBG_INJECT_DB | KVM_GUESTDBG_INJECT_BP)) {\n \t\tr = -EBUSY;\n \t\tif (vcpu->arch.exception.pending)\n@@ -7647,7 +7649,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,\n \tr = 0;\n \n out:\n-\n+\tvcpu_put(vcpu);\n \treturn r;\n }\n \ndiff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c\nindex 0a8a490..c688eb7 100644\n--- a/virt/kvm/kvm_main.c\n+++ b/virt/kvm/kvm_main.c\n@@ -2642,9 +2642,7 @@ static long kvm_vcpu_ioctl(struct file *filp,\n \t\tr = -EFAULT;\n \t\tif (copy_from_user(&dbg, argp, sizeof(dbg)))\n \t\t\tgoto out;\n-\t\tvcpu_load(vcpu);\n \t\tr = kvm_arch_vcpu_ioctl_set_guest_debug(vcpu, &dbg);\n-\t\tvcpu_put(vcpu);\n \t\tbreak;\n \t}\n \tcase KVM_SET_SIGNAL_MASK: {\n", "prefixes": [ "v2", "11/16" ] }