[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [QEMU-PPC] [PATCH V4 1/2] ppc/spapr-caps: Disallow sett
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [QEMU-PPC] [PATCH V4 1/2] ppc/spapr-caps: Disallow setting workaround for spapr-cap-ibs |
Date: |
Fri, 16 Feb 2018 13:41:29 +1100 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Fri, Feb 16, 2018 at 01:33:27PM +1100, Suraj Jitindar Singh wrote:
> The spapr-cap cap-ibs can only have values broken or fixed as there is
> no explicit workaround required. Currently setting the value workaround
> for this cap will hit an assert if the guest makes the hcall
> h_get_cpu_characteristics.
>
> Report an error when attempting to apply the setting with a more helpful
> error message.
>
> Reported-by: Satheesh Rajendran <address@hidden>
> Signed-off-by: Suraj Jitindar Singh <address@hidden>
Applied, thanks.
>
> ---
>
> V3 -> V4:
> - Add this patch back from V1 to replace
> "ppc/spapr-caps: Convert spapr-cap-ibs to be a boolean"
> as this was deemed to be a better solution
> ---
> hw/ppc/spapr_caps.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
> index e69d308560..99a4b71d19 100644
> --- a/hw/ppc/spapr_caps.c
> +++ b/hw/ppc/spapr_caps.c
> @@ -205,7 +205,9 @@ static void cap_safe_bounds_check_apply(sPAPRMachineState
> *spapr, uint8_t val,
> static void cap_safe_indirect_branch_apply(sPAPRMachineState *spapr,
> uint8_t val, Error **errp)
> {
> - if (tcg_enabled() && val) {
> + if (val == SPAPR_CAP_WORKAROUND) { /* Can only be Broken or Fixed */
> + error_setg(errp, "Requested safe indirect branch capability level
> \"workaround\" not valid, try cap-ibs=fixed");
> + } else if (tcg_enabled() && val) {
> /* TODO - for now only allow broken for TCG */
> error_setg(errp, "Requested safe indirect branch capability level
> not supported by tcg, try a different value for cap-ibs");
> } else if (kvm_enabled() && (val >
> kvmppc_get_cap_safe_indirect_branch())) {
> @@ -263,7 +265,7 @@ sPAPRCapabilityInfo capability_table[SPAPR_CAP_NUM] = {
> },
> [SPAPR_CAP_IBS] = {
> .name = "ibs",
> - .description = "Indirect Branch Serialisation" VALUE_DESC_TRISTATE,
> + .description = "Indirect Branch Serialisation (broken, fixed)",
> .index = SPAPR_CAP_IBS,
> .get = spapr_cap_get_tristate,
> .set = spapr_cap_set_tristate,
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature