From: Lorenzo Pieralisi <lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Lorenzo Pieralisi <lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org>, Christoffer Dall <christoffer.dall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, Anup Patel <anup.patel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org>, Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>, Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org>, Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>, Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org> Subject: [PATCH 1/6] ARM: kvm: psci: fix handling of unimplemented functions Date: Fri, 29 May 2015 13:16:34 +0100 [thread overview] Message-ID: <1432901799-18359-2-git-send-email-lorenzo.pieralisi@arm.com> (raw) In-Reply-To: <1432901799-18359-1-git-send-email-lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> According to the PSCI specification and the SMC/HVC calling convention, PSCI function_ids that are not implemented must return NOT_SUPPORTED as return value. Current KVM implementation takes an unhandled PSCI function_id as an error and injects an undefined instruction into the guest if PSCI implementation is called with a function_id that is not handled by the resident PSCI version (ie it is not implemented), which is not the behaviour expected by a guest when calling a PSCI function_id that is not implemented. This patch fixes this issue by returning NOT_SUPPORTED whenever the kvm PSCI call is executed for a function_id that is not implemented by the PSCI kvm layer. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> Reported-by: Sudeep Holla <sudeep.holla-5wv7dgnIgG8@public.gmane.org> Cc: Christoffer Dall <christoffer.dall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Anup Patel <anup.patel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Marc Zyngier <marc.zyngier-5wv7dgnIgG8@public.gmane.org> --- arch/arm/kvm/psci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c index 7e9398c..ec5943b 100644 --- a/arch/arm/kvm/psci.c +++ b/arch/arm/kvm/psci.c @@ -273,7 +273,8 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) ret = 0; break; default: - return -EINVAL; + val = PSCI_RET_NOT_SUPPORTED; + break; } *vcpu_reg(vcpu, 0) = val; @@ -295,10 +296,9 @@ static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu) break; case KVM_PSCI_FN_CPU_SUSPEND: case KVM_PSCI_FN_MIGRATE: + default: val = PSCI_RET_NOT_SUPPORTED; break; - default: - return -EINVAL; } *vcpu_reg(vcpu, 0) = val; -- 2.2.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/6] ARM: kvm: psci: fix handling of unimplemented functions Date: Fri, 29 May 2015 13:16:34 +0100 [thread overview] Message-ID: <1432901799-18359-2-git-send-email-lorenzo.pieralisi@arm.com> (raw) In-Reply-To: <1432901799-18359-1-git-send-email-lorenzo.pieralisi@arm.com> According to the PSCI specification and the SMC/HVC calling convention, PSCI function_ids that are not implemented must return NOT_SUPPORTED as return value. Current KVM implementation takes an unhandled PSCI function_id as an error and injects an undefined instruction into the guest if PSCI implementation is called with a function_id that is not handled by the resident PSCI version (ie it is not implemented), which is not the behaviour expected by a guest when calling a PSCI function_id that is not implemented. This patch fixes this issue by returning NOT_SUPPORTED whenever the kvm PSCI call is executed for a function_id that is not implemented by the PSCI kvm layer. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Reported-by: Sudeep Holla <sudeep.holla@arm.com> Cc: Christoffer Dall <christoffer.dall@linaro.org> Cc: Anup Patel <anup.patel@linaro.org> Cc: Marc Zyngier <marc.zyngier@arm.com> --- arch/arm/kvm/psci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c index 7e9398c..ec5943b 100644 --- a/arch/arm/kvm/psci.c +++ b/arch/arm/kvm/psci.c @@ -273,7 +273,8 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu) ret = 0; break; default: - return -EINVAL; + val = PSCI_RET_NOT_SUPPORTED; + break; } *vcpu_reg(vcpu, 0) = val; @@ -295,10 +296,9 @@ static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu) break; case KVM_PSCI_FN_CPU_SUSPEND: case KVM_PSCI_FN_MIGRATE: + default: val = PSCI_RET_NOT_SUPPORTED; break; - default: - return -EINVAL; } *vcpu_reg(vcpu, 0) = val; -- 2.2.1
next prev parent reply other threads:[~2015-05-29 12:16 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-29 12:16 [PATCH 0/6] drivers: firmware: psci: add basic v1.0 support Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi [not found] ` <1432901799-18359-1-git-send-email-lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> 2015-05-29 12:16 ` Lorenzo Pieralisi [this message] 2015-05-29 12:16 ` [PATCH 1/6] ARM: kvm: psci: fix handling of unimplemented functions Lorenzo Pieralisi [not found] ` <1432901799-18359-2-git-send-email-lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> 2015-05-29 13:04 ` Sudeep Holla 2015-05-29 13:04 ` Sudeep Holla 2015-06-09 17:18 ` Marc Zyngier 2015-06-09 17:18 ` Marc Zyngier [not found] ` <55771FDC.3090800-5wv7dgnIgG8@public.gmane.org> 2015-06-10 8:24 ` Lorenzo Pieralisi 2015-06-10 8:24 ` Lorenzo Pieralisi 2015-05-29 12:16 ` [PATCH 2/6] drivers: firmware: psci: add INVALID_ADDRESS return value Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi 2015-05-29 12:16 ` [PATCH 3/6] drivers: firmware: psci: move power_state handling to generic code Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi [not found] ` <1432901799-18359-4-git-send-email-lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> 2015-06-01 9:28 ` Will Deacon 2015-06-01 9:28 ` Will Deacon 2015-05-29 12:16 ` [PATCH 4/6] drivers: firmware: psci: add PSCI_FEATURES call Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi 2015-05-29 12:16 ` [PATCH 5/6] drivers: firmware: psci: add extended stateid power_state support Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi [not found] ` <1432901799-18359-6-git-send-email-lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org> 2015-06-05 14:16 ` Ashwin Chaugule 2015-06-05 14:16 ` Ashwin Chaugule [not found] ` <CAJ5Y-eYLAjOcTU1Md3Rmc0E49A5Dby1aoBzwtpKpD4Rg=XAYfA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-06-08 11:03 ` Lorenzo Pieralisi 2015-06-08 11:03 ` Lorenzo Pieralisi 2015-05-29 12:16 ` [PATCH 6/6] drivers: firmware: psci: add PSCI v1.0 DT bindings Lorenzo Pieralisi 2015-05-29 12:16 ` Lorenzo Pieralisi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1432901799-18359-2-git-send-email-lorenzo.pieralisi@arm.com \ --to=lorenzo.pieralisi-5wv7dgnigg8@public.gmane.org \ --cc=anup.patel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \ --cc=christoffer.dall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=marc.zyngier-5wv7dgnIgG8@public.gmane.org \ --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \ --cc=sudeep.holla-5wv7dgnIgG8@public.gmane.org \ --cc=will.deacon-5wv7dgnIgG8@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.