Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-19 Thread no-reply
Patchew URL: https://patchew.org/QEMU/20200619130632.4369-1-pbonz...@redhat.com/



Hi,

This series failed the asan build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
=== TEST SCRIPT END ===

  GEN docs/interop/qemu-qmp-ref.html
  GEN docs/interop/qemu-qmp-ref.7
  CC  qga/commands.o
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  CC  qga/guest-agent-command-state.o
  CC  qga/main.o
  CC  qga/commands-posix.o
---
  GEN docs/interop/qemu-ga-ref.html
  GEN docs/interop/qemu-ga-ref.txt
  GEN docs/interop/qemu-ga-ref.7
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-keymap
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKivshmem-client
  LINKivshmem-server
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-nbd
  AS  pc-bios/optionrom/multiboot.o
  LINKqemu-storage-daemon
---
  CC  pc-bios/optionrom/linuxboot_dma.o
  LINKqemu-img
  LINKqemu-io
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  AS  pc-bios/optionrom/kvmvapic.o
  AS  pc-bios/optionrom/pvh.o
  LINKqemu-edid
---
  BUILD   pc-bios/optionrom/pvh.img
  BUILD   pc-bios/optionrom/pvh.raw
  SIGNpc-bios/optionrom/pvh.bin
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKvirtiofsd
  LINKvhost-user-input
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 

Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-19 Thread no-reply
Patchew URL: https://patchew.org/QEMU/20200619130632.4369-1-pbonz...@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [PATCH] linux-headers: update to Linux 5.8-rc1
Type: series
Message-id: 20200619130632.4369-1-pbonz...@redhat.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 - [tag update]  patchew/20200619123331.17387-1-filip.boz...@syrmia.com -> 
patchew/20200619123331.17387-1-filip.boz...@syrmia.com
Switched to a new branch 'test'

=== OUTPUT BEGIN ===
checkpatch.pl: no revisions returned for revlist '1'
=== OUTPUT END ===

Test command exited with code: 255


The full log is available at
http://patchew.org/logs/20200619130632.4369-1-pbonz...@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-de...@redhat.com

Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-19 Thread Cornelia Huck
On Fri, 19 Jun 2020 09:06:32 -0400
Paolo Bonzini  wrote:

> Signed-off-by: Paolo Bonzini 
> ---
>  include/standard-headers/linux/virtio_ids.h  |   1 +
>  include/standard-headers/linux/virtio_ring.h |  48 ++-
>  linux-headers/linux/vfio.h   | 322 +++
>  linux-headers/linux/vfio_ccw.h   |  19 ++
>  linux-headers/linux/vhost.h  |   4 +
>  5 files changed, 384 insertions(+), 10 deletions(-)

Hm... I think that has already merged right now?




[PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-19 Thread Paolo Bonzini
Signed-off-by: Paolo Bonzini 
---
 include/standard-headers/linux/virtio_ids.h  |   1 +
 include/standard-headers/linux/virtio_ring.h |  48 ++-
 linux-headers/linux/vfio.h   | 322 +++
 linux-headers/linux/vfio_ccw.h   |  19 ++
 linux-headers/linux/vhost.h  |   4 +
 5 files changed, 384 insertions(+), 10 deletions(-)

diff --git a/include/standard-headers/linux/virtio_ids.h 
b/include/standard-headers/linux/virtio_ids.h
index ecc27a1740..b052355ac7 100644
--- a/include/standard-headers/linux/virtio_ids.h
+++ b/include/standard-headers/linux/virtio_ids.h
@@ -44,6 +44,7 @@
 #define VIRTIO_ID_VSOCK19 /* virtio vsock transport */
 #define VIRTIO_ID_CRYPTO   20 /* virtio crypto */
 #define VIRTIO_ID_IOMMU23 /* virtio IOMMU */
+#define VIRTIO_ID_MEM  24 /* virtio mem */
 #define VIRTIO_ID_FS   26 /* virtio filesystem */
 #define VIRTIO_ID_PMEM 27 /* virtio pmem */
 #define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
diff --git a/include/standard-headers/linux/virtio_ring.h 
b/include/standard-headers/linux/virtio_ring.h
index f230fed479..0fa0e1067f 100644
--- a/include/standard-headers/linux/virtio_ring.h
+++ b/include/standard-headers/linux/virtio_ring.h
@@ -84,6 +84,13 @@
  * at the end of the used ring. Guest should ignore the used->flags field. */
 #define VIRTIO_RING_F_EVENT_IDX29
 
+/* Alignment requirements for vring elements.
+ * When using pre-virtio 1.0 layout, these fall out naturally.
+ */
+#define VRING_AVAIL_ALIGN_SIZE 2
+#define VRING_USED_ALIGN_SIZE 4
+#define VRING_DESC_ALIGN_SIZE 16
+
 /* Virtio ring descriptors: 16 bytes.  These can chain together via "next". */
 struct vring_desc {
/* Address (guest-physical). */
@@ -110,28 +117,47 @@ struct vring_used_elem {
__virtio32 len;
 };
 
+typedef struct vring_used_elem __attribute__((aligned(VRING_USED_ALIGN_SIZE)))
+   vring_used_elem_t;
+
 struct vring_used {
__virtio16 flags;
__virtio16 idx;
-   struct vring_used_elem ring[];
+   vring_used_elem_t ring[];
 };
 
+/*
+ * The ring element addresses are passed between components with different
+ * alignments assumptions. Thus, we might need to decrease the 
compiler-selected
+ * alignment, and so must use a typedef to make sure the aligned attribute
+ * actually takes hold:
+ *
+ * 
https://gcc.gnu.org/onlinedocs//gcc/Common-Type-Attributes.html#Common-Type-Attributes
+ *
+ * When used on a struct, or struct member, the aligned attribute can only
+ * increase the alignment; in order to decrease it, the packed attribute must
+ * be specified as well. When used as part of a typedef, the aligned attribute
+ * can both increase and decrease alignment, and specifying the packed
+ * attribute generates a warning.
+ */
+typedef struct vring_desc __attribute__((aligned(VRING_DESC_ALIGN_SIZE)))
+   vring_desc_t;
+typedef struct vring_avail __attribute__((aligned(VRING_AVAIL_ALIGN_SIZE)))
+   vring_avail_t;
+typedef struct vring_used __attribute__((aligned(VRING_USED_ALIGN_SIZE)))
+   vring_used_t;
+
 struct vring {
unsigned int num;
 
-   struct vring_desc *desc;
+   vring_desc_t *desc;
 
-   struct vring_avail *avail;
+   vring_avail_t *avail;
 
-   struct vring_used *used;
+   vring_used_t *used;
 };
 
-/* Alignment requirements for vring elements.
- * When using pre-virtio 1.0 layout, these fall out naturally.
- */
-#define VRING_AVAIL_ALIGN_SIZE 2
-#define VRING_USED_ALIGN_SIZE 4
-#define VRING_DESC_ALIGN_SIZE 16
+#ifndef VIRTIO_RING_NO_LEGACY
 
 /* The standard layout for the ring is a continuous chunk of memory which looks
  * like this.  We assume num is a power of 2.
@@ -179,6 +205,8 @@ static inline unsigned vring_size(unsigned int num, 
unsigned long align)
+ sizeof(__virtio16) * 3 + sizeof(struct vring_used_elem) * num;
 }
 
+#endif /* VIRTIO_RING_NO_LEGACY */
+
 /* The following is used with USED_EVENT_IDX and AVAIL_EVENT_IDX */
 /* Assuming a given event_idx value from the other side, if
  * we have just incremented index from old to new_idx,
diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h
index a41c452865..f09df262c4 100644
--- a/linux-headers/linux/vfio.h
+++ b/linux-headers/linux/vfio.h
@@ -305,6 +305,7 @@ struct vfio_region_info_cap_type {
 #define VFIO_REGION_TYPE_PCI_VENDOR_MASK   (0x)
 #define VFIO_REGION_TYPE_GFX(1)
 #define VFIO_REGION_TYPE_CCW   (2)
+#define VFIO_REGION_TYPE_MIGRATION  (3)
 
 /* sub-types for VFIO_REGION_TYPE_PCI_* */
 
@@ -378,6 +379,235 @@ struct vfio_region_gfx_edid {
 
 /* sub-types for VFIO_REGION_TYPE_CCW */
 #define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD  (1)
+#define VFIO_REGION_SUBTYPE_CCW_SCHIB  (2)
+#define VFIO_REGION_SUBTYPE_CCW_CRW(3)
+
+/* sub-types for VFIO_REGION_TYPE_MIGRATION */
+#define VFIO_REGION_SUBTYPE_MIGRATION  

Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-05 Thread Cornelia Huck
On Fri, 5 Jun 2020 09:35:33 +0200
Paolo Bonzini  wrote:

> Il ven 5 giu 2020, 09:28 Cornelia Huck  ha scritto:
> 
> > On Thu,  4 Jun 2020 18:41:48 -0400
> > Paolo Bonzini  wrote:
> >
> > Isn't it still a bit early for -rc1? :) Probably wants a commit id...
> >  
> > > Signed-off-by: Paolo Bonzini 
> > > ---
> > >  include/standard-headers/asm-x86/kvm_para.h |  17 ++-
> > >  include/standard-headers/drm/drm_fourcc.h   | 140 ++--
> > >  include/standard-headers/linux/ethtool.h|  16 ++-
> > >  linux-headers/asm-arm/unistd-common.h   |   1 +
> > >  linux-headers/asm-arm64/mman.h  |   8 ++
> > >  linux-headers/asm-generic/unistd.h  |   4 +-
> > >  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/unistd_32.h   |   1 +
> > >  linux-headers/asm-powerpc/unistd_64.h   |   1 +
> > >  linux-headers/asm-s390/unistd_32.h  |   1 +
> > >  linux-headers/asm-s390/unistd_64.h  |   1 +
> > >  linux-headers/asm-x86/kvm.h |  20 ++-
> > >  linux-headers/asm-x86/unistd.h  |  11 +-
> > >  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/kvm.h   |  18 ++-
> > >  linux-headers/linux/psp-sev.h   |   2 +
> > >  20 files changed, 224 insertions(+), 23 deletions(-)  
> >
> > There will be more (e.g. on the vfio side); anything in particular you
> > need this update for?
> >  
> 
> I need it for nested AMD live migration and page ready interrupts
> (basically the KVM bits), but I can post it again when rc1 is really done.

Yeah, that sounds ok, but it really wants the commit id if it isn't the
not-yet-existing -rc1.




Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-05 Thread Paolo Bonzini
Il ven 5 giu 2020, 09:28 Cornelia Huck  ha scritto:

> On Thu,  4 Jun 2020 18:41:48 -0400
> Paolo Bonzini  wrote:
>
> Isn't it still a bit early for -rc1? :) Probably wants a commit id...
>
> > Signed-off-by: Paolo Bonzini 
> > ---
> >  include/standard-headers/asm-x86/kvm_para.h |  17 ++-
> >  include/standard-headers/drm/drm_fourcc.h   | 140 ++--
> >  include/standard-headers/linux/ethtool.h|  16 ++-
> >  linux-headers/asm-arm/unistd-common.h   |   1 +
> >  linux-headers/asm-arm64/mman.h  |   8 ++
> >  linux-headers/asm-generic/unistd.h  |   4 +-
> >  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/unistd_32.h   |   1 +
> >  linux-headers/asm-powerpc/unistd_64.h   |   1 +
> >  linux-headers/asm-s390/unistd_32.h  |   1 +
> >  linux-headers/asm-s390/unistd_64.h  |   1 +
> >  linux-headers/asm-x86/kvm.h |  20 ++-
> >  linux-headers/asm-x86/unistd.h  |  11 +-
> >  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/kvm.h   |  18 ++-
> >  linux-headers/linux/psp-sev.h   |   2 +
> >  20 files changed, 224 insertions(+), 23 deletions(-)
>
> There will be more (e.g. on the vfio side); anything in particular you
> need this update for?
>

I need it for nested AMD live migration and page ready interrupts
(basically the KVM bits), but I can post it again when rc1 is really done.

Paolo


>


Re: [PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-05 Thread Cornelia Huck
On Thu,  4 Jun 2020 18:41:48 -0400
Paolo Bonzini  wrote:

Isn't it still a bit early for -rc1? :) Probably wants a commit id...

> Signed-off-by: Paolo Bonzini 
> ---
>  include/standard-headers/asm-x86/kvm_para.h |  17 ++-
>  include/standard-headers/drm/drm_fourcc.h   | 140 ++--
>  include/standard-headers/linux/ethtool.h|  16 ++-
>  linux-headers/asm-arm/unistd-common.h   |   1 +
>  linux-headers/asm-arm64/mman.h  |   8 ++
>  linux-headers/asm-generic/unistd.h  |   4 +-
>  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/unistd_32.h   |   1 +
>  linux-headers/asm-powerpc/unistd_64.h   |   1 +
>  linux-headers/asm-s390/unistd_32.h  |   1 +
>  linux-headers/asm-s390/unistd_64.h  |   1 +
>  linux-headers/asm-x86/kvm.h |  20 ++-
>  linux-headers/asm-x86/unistd.h  |  11 +-
>  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/kvm.h   |  18 ++-
>  linux-headers/linux/psp-sev.h   |   2 +
>  20 files changed, 224 insertions(+), 23 deletions(-)

There will be more (e.g. on the vfio side); anything in particular you
need this update for?




[PATCH] linux-headers: update to Linux 5.8-rc1

2020-06-04 Thread Paolo Bonzini
Signed-off-by: Paolo Bonzini 
---
 include/standard-headers/asm-x86/kvm_para.h |  17 ++-
 include/standard-headers/drm/drm_fourcc.h   | 140 ++--
 include/standard-headers/linux/ethtool.h|  16 ++-
 linux-headers/asm-arm/unistd-common.h   |   1 +
 linux-headers/asm-arm64/mman.h  |   8 ++
 linux-headers/asm-generic/unistd.h  |   4 +-
 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/unistd_32.h   |   1 +
 linux-headers/asm-powerpc/unistd_64.h   |   1 +
 linux-headers/asm-s390/unistd_32.h  |   1 +
 linux-headers/asm-s390/unistd_64.h  |   1 +
 linux-headers/asm-x86/kvm.h |  20 ++-
 linux-headers/asm-x86/unistd.h  |  11 +-
 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/kvm.h   |  18 ++-
 linux-headers/linux/psp-sev.h   |   2 +
 20 files changed, 224 insertions(+), 23 deletions(-)

diff --git a/include/standard-headers/asm-x86/kvm_para.h 
b/include/standard-headers/asm-x86/kvm_para.h
index 90604a8fb7..07877d3295 100644
--- a/include/standard-headers/asm-x86/kvm_para.h
+++ b/include/standard-headers/asm-x86/kvm_para.h
@@ -31,6 +31,7 @@
 #define KVM_FEATURE_PV_SEND_IPI11
 #define KVM_FEATURE_POLL_CONTROL   12
 #define KVM_FEATURE_PV_SCHED_YIELD 13
+#define KVM_FEATURE_ASYNC_PF_INT   14
 
 #define KVM_HINTS_REALTIME  0
 
@@ -50,6 +51,8 @@
 #define MSR_KVM_STEAL_TIME  0x4b564d03
 #define MSR_KVM_PV_EOI_EN  0x4b564d04
 #define MSR_KVM_POLL_CONTROL   0x4b564d05
+#define MSR_KVM_ASYNC_PF_INT   0x4b564d06
+#define MSR_KVM_ASYNC_PF_ACK   0x4b564d07
 
 struct kvm_steal_time {
uint64_t steal;
@@ -81,6 +84,11 @@ struct kvm_clock_pairing {
 #define KVM_ASYNC_PF_ENABLED   (1 << 0)
 #define KVM_ASYNC_PF_SEND_ALWAYS   (1 << 1)
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
+#define KVM_ASYNC_PF_DELIVERY_AS_INT   (1 << 3)
+
+/* MSR_KVM_ASYNC_PF_INT */
+#define KVM_ASYNC_PF_VEC_MASK  GENMASK(7, 0)
+
 
 /* Operations for KVM_HC_MMU_OP */
 #define KVM_MMU_OP_WRITE_PTE1
@@ -112,8 +120,13 @@ struct kvm_mmu_op_release_pt {
 #define KVM_PV_REASON_PAGE_READY 2
 
 struct kvm_vcpu_pv_apf_data {
-   uint32_t reason;
-   uint8_t pad[60];
+   /* Used for 'page not present' events delivered via #PF */
+   uint32_t flags;
+
+   /* Used for 'page ready' events delivered via interrupt notification */
+   uint32_t token;
+
+   uint8_t pad[56];
uint32_t enabled;
 };
 
diff --git a/include/standard-headers/drm/drm_fourcc.h 
b/include/standard-headers/drm/drm_fourcc.h
index 66e838074c..909a66753c 100644
--- a/include/standard-headers/drm/drm_fourcc.h
+++ b/include/standard-headers/drm/drm_fourcc.h
@@ -353,9 +353,12 @@ extern "C" {
  * a platform-dependent stride. On top of that the memory can apply
  * platform-depending swizzling of some higher address bits into bit6.
  *
- * This format is highly platforms specific and not useful for cross-driver
- * sharing. It exists since on a given platform it does uniquely identify the
- * layout in a simple way for i915-specific userspace.
+ * Note that this layout is only accurate on intel gen 8+ or valleyview 
chipsets.
+ * On earlier platforms the is highly platforms specific and not useful for
+ * cross-driver sharing. It exists since on a given platform it does uniquely
+ * identify the layout in a simple way for i915-specific userspace, which
+ * facilitated conversion of userspace to modifiers. Additionally the exact
+ * format on some really old platforms is not known.
  */
 #define I915_FORMAT_MOD_X_TILEDfourcc_mod_code(INTEL, 1)
 
@@ -368,9 +371,12 @@ extern "C" {
  * memory can apply platform-depending swizzling of some higher address bits
  * into bit6.
  *
- * This format is highly platforms specific and not useful for cross-driver
- * sharing. It exists since on a given platform it does uniquely identify the
- * layout in a simple way for i915-specific userspace.
+ * Note that this layout is only accurate on intel gen 8+ or valleyview 
chipsets.
+ * On earlier platforms the is highly platforms specific and not useful for
+ * cross-driver sharing. It exists since on a given platform it does uniquely
+ * identify the layout in a simple way for i915-specific userspace, which
+ * facilitated conversion of userspace to modifiers. Additionally the exact
+ * format on some really old platforms is not known.
  */
 #define I915_FORMAT_MOD_Y_TILEDfourcc_mod_code(INTEL, 2)
 
@@ -520,7 +526,113 @@ extern "C" {
 #define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
 
 /*
- * 16Bx2 Block Linear layout, used by desktop GPUs, and Tegra K1 and later
+