On Mon, Jun 08, 2026, David Woodhouse wrote:
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index c1897d939da9..6337f9b9d7ac 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -5930,6 +5930,9 @@ static int kvm_arch_tsc_has_attr(struct kvm_vcpu *vcpu,
>       case KVM_VCPU_TSC_OFFSET:
>               r = 0;
>               break;
> +     case KVM_VCPU_TSC_SCALE:
> +             r = kvm_caps.has_tsc_control ? 0 : -ENXIO;
> +             break;
>       default:
>               r = -ENXIO;
>       }
> @@ -5950,6 +5953,22 @@ static int kvm_arch_tsc_get_attr(struct kvm_vcpu *vcpu,
>                       break;
>               r = 0;
>               break;
> +     case KVM_VCPU_TSC_SCALE: {
> +             struct kvm_vcpu_tsc_scale scale;
> +
> +             if (!kvm_caps.has_tsc_control) {
> +                     r = -ENXIO;
> +                     break;
> +             }

Uber nit.  For consistency with KVM's bizarre pattern here:

                r = -ENXIO;
                if (!kvm_caps.has_tsc_control)
                        break;

> +
> +             scale.tsc_ratio = vcpu->arch.l1_tsc_scaling_ratio;
> +             scale.tsc_frac_bits = kvm_caps.tsc_scaling_ratio_frac_bits;
> +             r = -EFAULT;
> +             if (copy_to_user(uaddr, &scale, sizeof(scale)))
> +                     break;
> +             r = 0;
> +             break;
> +     }
>       default:
>               r = -ENXIO;
>       }
> @@ -5989,6 +6008,9 @@ static int kvm_arch_tsc_set_attr(struct kvm_vcpu *vcpu,
>               r = 0;
>               break;
>       }
> +     case KVM_VCPU_TSC_SCALE:

Another stupid consistency nit.  Probably do this?

                /*
                 * TSC scaling information is read-only (it's a reflection of
                 * the TSC frequency, which can be set by userspace).
                 */
                r = kvm_caps.has_tsc_control ? -EINVAL : -ENXIO;

> +             r = -EINVAL; /* Read only */
> +             break;
>       default:
>               r = -ENXIO;
>       }

Reply via email to