Hi Michal,

On 2026/08/13 09:35 AM, Michal Suchánek wrote:
> Hello,
> 
> some version of the kernel patches seems to be merged in the powerpc
> tree now.
> 
> Cant his be merged now or is a refresh required?

The Linux series which introduced the UAPI changes is still in ppc/next
and yet to be merged upstream. I believe the header sync can only be
done once the patches are merged in mainline.

Thanks,
Amit

> 
> Thanks
> 
> Michal
> 
> On Wed, Aug 12, 2026 at 10:38:52PM +0530, Amit Machhiwal wrote:
> > This is a temporary patch intended for review and testing purposes only.
> > It syncs the QEMU linux-headers with the kernel v9 changes that introduce
> > the KVM_PPC_GET_COMPAT_CAPS ioctl for querying host CPU compatibility
> > capabilities. The struct kvm_ppc_compat_caps places 'size' as the first
> > field as required by copy_struct_from/to_user() versioning, with
> > KVM_PPC_COMPAT_CAPS_SIZE_VER0 (24) defined as the frozen version-floor
> > constant. The capability number is KVM_CAP_PPC_COMPAT_CAPS (250) and
> > the ioctl is defined as _IO so the ioctl number remains stable if the
> > struct grows in future versions. Capability bit definitions for POWER9,
> > POWER10, and POWER11 compatibility modes are also included.
> > 
> > The actual header sync will be done via scripts/update-linux-headers.sh
> > once the kernel changes [1] are merged upstream.
> > 
> > [1] 
> > https://lore.kernel.org/all/[email protected]/
> > 
> > Tested-by: Gautam Menghani <[email protected]>
> > Reviewed-by: Gautam Menghani <[email protected]>
> > Tested-by: Anushree Mathur <[email protected]>
> > Signed-off-by: Amit Machhiwal <[email protected]>
> > ---
> > No changes in this version.
> > 
> >  linux-headers/asm-powerpc/kvm.h | 19 +++++++++++++++++++
> >  linux-headers/linux/kvm.h       |  3 +++
> >  2 files changed, 22 insertions(+)
> > 
> > diff --git a/linux-headers/asm-powerpc/kvm.h 
> > b/linux-headers/asm-powerpc/kvm.h
> > index 077c5437f521..2c229fe0562c 100644
> > --- a/linux-headers/asm-powerpc/kvm.h
> > +++ b/linux-headers/asm-powerpc/kvm.h
> > @@ -437,6 +437,25 @@ struct kvm_ppc_cpu_char {
> >     __u64   behaviour_mask;         /* valid bits in behaviour */
> >  };
> >  
> > +/* For KVM_PPC_GET_COMPAT_CAPS */
> > +struct kvm_ppc_compat_caps {
> > +   __u64   size;                   /* Size of this structure */
> > +   __u64   flags;                  /* Reserved for future use */
> > +   __u64   compat_capabilities;    /* Capabilities supported by the host */
> > +};
> > +#define KVM_PPC_COMPAT_CAPS_SIZE_VER0      24 /* sizeof first published 
> > struct */
> > +
> > +/*
> > + * Capability bits for compat_capabilities field in kvm_ppc_compat_caps.
> > + * These bits indicate which processor compatibility modes are supported.
> > + */
> > +#define KVM_PPC_COMPAT_CAP_POWER9  (1ULL << 62)
> > +#define KVM_PPC_COMPAT_CAP_POWER10 (1ULL << 61)
> > +#define KVM_PPC_COMPAT_CAP_POWER11 (1ULL << 60)
> > +#define KVM_PPC_COMPAT_BITMASK             (KVM_PPC_COMPAT_CAP_POWER9 | \
> > +                                    KVM_PPC_COMPAT_CAP_POWER10 | \
> > +                                    KVM_PPC_COMPAT_CAP_POWER11)
> > +
> >  /*
> >   * Values for character and character_mask.
> >   * These are identical to the values used by H_GET_CPU_CHARACTERISTICS.
> > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
> > index dd52e2a65bfd..aea4ab5c6953 100644
> > --- a/linux-headers/linux/kvm.h
> > +++ b/linux-headers/linux/kvm.h
> > @@ -986,6 +986,7 @@ struct kvm_enable_cap {
> >  #define KVM_CAP_S390_KEYOP 247
> >  #define KVM_CAP_S390_VSIE_ESAMODE 248
> >  #define KVM_CAP_S390_HPAGE_2G 249
> > +#define KVM_CAP_PPC_COMPAT_CAPS 250
> >  
> >  struct kvm_irq_routing_irqchip {
> >     __u32 irqchip;
> > @@ -1330,6 +1331,8 @@ struct kvm_s390_keyop {
> >  /* Available with KVM_CAP_COUNTER_OFFSET */
> >  #define KVM_ARM_SET_COUNTER_OFFSET _IOW(KVMIO,  0xb5, struct 
> > kvm_arm_counter_offset)
> >  #define KVM_ARM_GET_REG_WRITABLE_MASKS _IOR(KVMIO,  0xb6, struct 
> > reg_mask_range)
> > +/* Available with KVM_CAP_PPC_COMPAT_CAPS */
> > +#define KVM_PPC_GET_COMPAT_CAPS    _IO(KVMIO,  0xb8)
> >  
> >  /* ioctl for vm fd */
> >  #define KVM_CREATE_DEVICE    _IOWR(KVMIO,  0xe0, struct kvm_create_device)
> > -- 
> > 2.50.1 (Apple Git-155)
> > 
> > 

Reply via email to