qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [QEMU-PPC] [PATCH V4 1/2] ppc/spapr-caps: Disallow settin


From: David Gibson
Subject: Re: [Qemu-ppc] [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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]