From: Harsh Prateek Bora <harshpb@linux.ibm.com>
To: Amit Machhiwal <amachhiw@linux.ibm.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org,
"Michael S. Tsirkin" <mst@redhat.com>,
Cornelia Huck <cohuck@redhat.com>
Cc: Chinmay Rath <rathc@linux.ibm.com>
Subject: Re: [PATCH] linux-headers: Update to include KVM_CAP_PPC_COMPAT_CAPS
Date: Sun, 23 Aug 2026 11:29:38 +0530 [thread overview]
Message-ID: <deff00ce-ece0-4cdd-b1a5-90bb5e6a0835@linux.ibm.com> (raw)
In-Reply-To: <20260819045924.11732-1-amachhiw@linux.ibm.com>
Hi Cornelia,
Will you be picking it up sometime soon or shall I fold in with
respective qemu patches depending on it? Please let me know. TIA.
regards,
Harsh
On 19/08/26 10:29 am, Amit Machhiwal wrote:
> Sync linux headers from Linux kernel commit 1200d84f4c0a
> ("Merge tag 'powerpc-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux").
>
> This picks up the new KVM_CAP_PPC_COMPAT_CAPS capability for powerpc,
> which introduces:
> - struct kvm_ppc_compat_caps: reports processor compatibility modes
> supported by the host (POWER9, POWER10, POWER11)
> - KVM_PPC_GET_COMPAT_CAPS ioctl (KVMIO 0xb8)
> - KVM_CAP_PPC_COMPAT_CAPS (cap #250) in linux/kvm.h
>
> The sync is needed to get the corresponding Qemu series[1] merged.
>
> [1]: https://lore.kernel.org/all/20260812170854.58709-1-amachhiw@linux.ibm.com/
>
> Signed-off-by: Amit Machhiwal <amachhiw@linux.ibm.com>
> ---
> include/standard-headers/linux/const.h | 4 ++--
> linux-headers/asm-arm64/unistd_64.h | 1 +
> linux-headers/asm-generic/unistd.h | 6 +++++-
> linux-headers/asm-loongarch/unistd_64.h | 1 +
> linux-headers/asm-mips/unistd_n32.h | 1 +
> linux-headers/asm-mips/unistd_n64.h | 1 +
> linux-headers/asm-mips/unistd_o32.h | 1 +
> linux-headers/asm-powerpc/kvm.h | 18 ++++++++++++++++++
> linux-headers/asm-powerpc/unistd_32.h | 1 +
> linux-headers/asm-powerpc/unistd_64.h | 1 +
> linux-headers/asm-riscv/unistd_32.h | 1 +
> linux-headers/asm-riscv/unistd_64.h | 1 +
> linux-headers/asm-s390/unistd_64.h | 1 +
> linux-headers/asm-x86/unistd_32.h | 1 +
> linux-headers/asm-x86/unistd_64.h | 1 +
> linux-headers/asm-x86/unistd_x32.h | 1 +
> linux-headers/linux/const.h | 4 ++--
> linux-headers/linux/kvm.h | 3 +++
> 18 files changed, 43 insertions(+), 5 deletions(-)
>
> diff --git a/include/standard-headers/linux/const.h b/include/standard-headers/linux/const.h
> index c6a9d0c9835c..92635cec4aed 100644
> --- a/include/standard-headers/linux/const.h
> +++ b/include/standard-headers/linux/const.h
> @@ -13,7 +13,7 @@
> * leave it unchanged in asm.
> */
>
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
> #define _AC(X,Y) X
> #define _AT(T,X) X
> #else
> @@ -28,7 +28,7 @@
> #define _BITUL(x) (_UL(1) << (x))
> #define _BITULL(x) (_ULL(1) << (x))
>
> -#if !defined(__ASSEMBLY__)
> +#if !defined(__ASSEMBLER__)
> /*
> * Missing __asm__ support
> *
> diff --git a/linux-headers/asm-arm64/unistd_64.h b/linux-headers/asm-arm64/unistd_64.h
> index 70b3754a4247..4329a2ad54c2 100644
> --- a/linux-headers/asm-arm64/unistd_64.h
> +++ b/linux-headers/asm-arm64/unistd_64.h
> @@ -328,6 +328,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-generic/unistd.h b/linux-headers/asm-generic/unistd.h
> index a627acc8fb5f..5b7e77a7c736 100644
> --- a/linux-headers/asm-generic/unistd.h
> +++ b/linux-headers/asm-generic/unistd.h
> @@ -863,8 +863,12 @@ __SYSCALL(__NR_listns, sys_listns)
> #define __NR_rseq_slice_yield 471
> __SYSCALL(__NR_rseq_slice_yield, sys_rseq_slice_yield)
>
> +/* fs/open.c */
> +#define __NR_fchroot 472
> +__SYSCALL(__NR_fchroot, sys_fchroot)
> +
> #undef __NR_syscalls
> -#define __NR_syscalls 472
> +#define __NR_syscalls 473
>
> /*
> * 32 bit systems traditionally used different
> diff --git a/linux-headers/asm-loongarch/unistd_64.h b/linux-headers/asm-loongarch/unistd_64.h
> index 3a29d86e1dee..b525f2d7b881 100644
> --- a/linux-headers/asm-loongarch/unistd_64.h
> +++ b/linux-headers/asm-loongarch/unistd_64.h
> @@ -325,6 +325,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-mips/unistd_n32.h b/linux-headers/asm-mips/unistd_n32.h
> index 5fa1ee0cb465..f883da76c999 100644
> --- a/linux-headers/asm-mips/unistd_n32.h
> +++ b/linux-headers/asm-mips/unistd_n32.h
> @@ -400,5 +400,6 @@
> #define __NR_file_setattr (__NR_Linux + 469)
> #define __NR_listns (__NR_Linux + 470)
> #define __NR_rseq_slice_yield (__NR_Linux + 471)
> +#define __NR_fchroot (__NR_Linux + 472)
>
> #endif /* _ASM_UNISTD_N32_H */
> diff --git a/linux-headers/asm-mips/unistd_n64.h b/linux-headers/asm-mips/unistd_n64.h
> index e1f873d83a5d..59837eb86628 100644
> --- a/linux-headers/asm-mips/unistd_n64.h
> +++ b/linux-headers/asm-mips/unistd_n64.h
> @@ -376,5 +376,6 @@
> #define __NR_file_setattr (__NR_Linux + 469)
> #define __NR_listns (__NR_Linux + 470)
> #define __NR_rseq_slice_yield (__NR_Linux + 471)
> +#define __NR_fchroot (__NR_Linux + 472)
>
> #endif /* _ASM_UNISTD_N64_H */
> diff --git a/linux-headers/asm-mips/unistd_o32.h b/linux-headers/asm-mips/unistd_o32.h
> index 8207e9ca4f67..485872076e92 100644
> --- a/linux-headers/asm-mips/unistd_o32.h
> +++ b/linux-headers/asm-mips/unistd_o32.h
> @@ -446,5 +446,6 @@
> #define __NR_file_setattr (__NR_Linux + 469)
> #define __NR_listns (__NR_Linux + 470)
> #define __NR_rseq_slice_yield (__NR_Linux + 471)
> +#define __NR_fchroot (__NR_Linux + 472)
>
> #endif /* _ASM_UNISTD_O32_H */
> diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
> index 077c5437f521..913a64b901a3 100644
> --- a/linux-headers/asm-powerpc/kvm.h
> +++ b/linux-headers/asm-powerpc/kvm.h
> @@ -437,6 +437,24 @@ 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/asm-powerpc/unistd_32.h b/linux-headers/asm-powerpc/unistd_32.h
> index 1f633601201b..2677c54903a4 100644
> --- a/linux-headers/asm-powerpc/unistd_32.h
> +++ b/linux-headers/asm-powerpc/unistd_32.h
> @@ -453,6 +453,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_32_H */
> diff --git a/linux-headers/asm-powerpc/unistd_64.h b/linux-headers/asm-powerpc/unistd_64.h
> index 87439c53c121..6fc19ccccdb9 100644
> --- a/linux-headers/asm-powerpc/unistd_64.h
> +++ b/linux-headers/asm-powerpc/unistd_64.h
> @@ -425,6 +425,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-riscv/unistd_32.h b/linux-headers/asm-riscv/unistd_32.h
> index 828f3c2b9de1..1039bdc6cf5b 100644
> --- a/linux-headers/asm-riscv/unistd_32.h
> +++ b/linux-headers/asm-riscv/unistd_32.h
> @@ -319,6 +319,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_32_H */
> diff --git a/linux-headers/asm-riscv/unistd_64.h b/linux-headers/asm-riscv/unistd_64.h
> index 8fa59835a333..72040a54987a 100644
> --- a/linux-headers/asm-riscv/unistd_64.h
> +++ b/linux-headers/asm-riscv/unistd_64.h
> @@ -329,6 +329,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-s390/unistd_64.h b/linux-headers/asm-s390/unistd_64.h
> index 01f674c1bcb7..3d3747e3ca1f 100644
> --- a/linux-headers/asm-s390/unistd_64.h
> +++ b/linux-headers/asm-s390/unistd_64.h
> @@ -391,6 +391,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-x86/unistd_32.h b/linux-headers/asm-x86/unistd_32.h
> index e94546882962..7f298247f805 100644
> --- a/linux-headers/asm-x86/unistd_32.h
> +++ b/linux-headers/asm-x86/unistd_32.h
> @@ -462,6 +462,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_32_H */
> diff --git a/linux-headers/asm-x86/unistd_64.h b/linux-headers/asm-x86/unistd_64.h
> index 3c49b00ed13c..fbddeb4bc381 100644
> --- a/linux-headers/asm-x86/unistd_64.h
> +++ b/linux-headers/asm-x86/unistd_64.h
> @@ -386,6 +386,7 @@
> #define __NR_file_setattr 469
> #define __NR_listns 470
> #define __NR_rseq_slice_yield 471
> +#define __NR_fchroot 472
>
>
> #endif /* _ASM_UNISTD_64_H */
> diff --git a/linux-headers/asm-x86/unistd_x32.h b/linux-headers/asm-x86/unistd_x32.h
> index bd2af9ad088d..629770ed4baa 100644
> --- a/linux-headers/asm-x86/unistd_x32.h
> +++ b/linux-headers/asm-x86/unistd_x32.h
> @@ -339,6 +339,7 @@
> #define __NR_file_setattr (__X32_SYSCALL_BIT + 469)
> #define __NR_listns (__X32_SYSCALL_BIT + 470)
> #define __NR_rseq_slice_yield (__X32_SYSCALL_BIT + 471)
> +#define __NR_fchroot (__X32_SYSCALL_BIT + 472)
> #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
> #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
> #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
> diff --git a/linux-headers/linux/const.h b/linux-headers/linux/const.h
> index c6a9d0c9835c..92635cec4aed 100644
> --- a/linux-headers/linux/const.h
> +++ b/linux-headers/linux/const.h
> @@ -13,7 +13,7 @@
> * leave it unchanged in asm.
> */
>
> -#ifdef __ASSEMBLY__
> +#ifdef __ASSEMBLER__
> #define _AC(X,Y) X
> #define _AT(T,X) X
> #else
> @@ -28,7 +28,7 @@
> #define _BITUL(x) (_UL(1) << (x))
> #define _BITULL(x) (_ULL(1) << (x))
>
> -#if !defined(__ASSEMBLY__)
> +#if !defined(__ASSEMBLER__)
> /*
> * Missing __asm__ support
> *
> 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)
>
> base-commit: fa19879df1658f96ac07365fca8835b7decd6995
prev parent reply other threads:[~2026-08-23 5:59 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-19 4:59 [PATCH] linux-headers: Update to include KVM_CAP_PPC_COMPAT_CAPS Amit Machhiwal
2026-08-23 5:59 ` Harsh Prateek Bora [this message]
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=deff00ce-ece0-4cdd-b1a5-90bb5e6a0835@linux.ibm.com \
--to=harshpb@linux.ibm.com \
--cc=amachhiw@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rathc@linux.ibm.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox