Kernel KVM virtualization development
 help / color / mirror / Atom feed
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


      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