Message ID | 160390309510.12234.8858324597971641979.stgit@gimli.home |
---|---|
Headers | show |
Series | VFIO updates 2020-10-28 (for QEMU 5.2 soft-freeze) | expand |
On Wed, 28 Oct 2020 at 16:42, Alex Williamson <alex.williamson@redhat.com> wrote: > > The following changes since commit 33dc9914eac581dea9bdea35dcda4d542531d66a: > > Revert series: virtiofsd: Announce submounts to the guest (2020-10-28 13:17:32 +0000) > > are available in the Git repository at: > > git://github.com/awilliam/qemu-vfio.git tags/vfio-update-20201028.0 > > for you to fetch changes up to 83d64f2efe383f1f70e180cf1579d3bbe2fbcdf5: > > vfio: fix incorrect print type (2020-10-28 10:30:37 -0600) > > ---------------------------------------------------------------- > VFIO update 2020-10-28 > > * Migration support (Kirti Wankhede) > * s390 DMA limiting (Matthew Rosato) > * zPCI hardware info (Matthew Rosato) > * Lock guard (Amey Narkhede) > * Print fixes (Zhengui li) > * Warning/build fixes > Hi; this fails to build on OSX and the BSDs: ../../hw/s390x/s390-pci-vfio.c:13:10: fatal error: 'linux/vfio.h' file not found #include <linux/vfio.h> ^~~~~~~~~~~~~~ fails differently but on the same file on windows builds: ../../hw/s390x/s390-pci-vfio.c:12:23: fatal error: sys/ioctl.h: No such file or directory and has this error on 32-bit hosts: ../../hw/vfio/common.c: In function 'vfio_dma_unmap_bitmap': ../../hw/vfio/common.c:414:48: error: passing argument 1 of 'cpu_physical_memory_set_dirty_lebitmap' from incompatible pointer type [-Werror=incompatible-pointer-types] cpu_physical_memory_set_dirty_lebitmap((uint64_t *)bitmap->data, ^ In file included from ../../hw/vfio/common.c:32:0: /home/peter.maydell/qemu/include/exec/ram_addr.h:337:20: note: expected 'long unsigned int *' but argument is of type 'uint64_t * {aka long long unsigned int *}' static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../hw/vfio/common.c: In function 'vfio_get_dirty_bitmap': ../../hw/vfio/common.c:1008:44: error: passing argument 1 of 'cpu_physical_memory_set_dirty_lebitmap' from incompatible pointer type [-Werror=incompatible-pointer-types] cpu_physical_memory_set_dirty_lebitmap((uint64_t *)range->bitmap.data, ^ In file included from ../../hw/vfio/common.c:32:0: /home/peter.maydell/qemu/include/exec/ram_addr.h:337:20: note: expected 'long unsigned int *' but argument is of type 'uint64_t * {aka long long unsigned int *}' static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ thanks -- PMM
On Sat, 31 Oct 2020 14:54:54 +0000 Peter Maydell <peter.maydell@linaro.org> wrote: > On Wed, 28 Oct 2020 at 16:42, Alex Williamson > <alex.williamson@redhat.com> wrote: > > > > The following changes since commit 33dc9914eac581dea9bdea35dcda4d542531d66a: > > > > Revert series: virtiofsd: Announce submounts to the guest (2020-10-28 13:17:32 +0000) > > > > are available in the Git repository at: > > > > git://github.com/awilliam/qemu-vfio.git tags/vfio-update-20201028.0 > > > > for you to fetch changes up to 83d64f2efe383f1f70e180cf1579d3bbe2fbcdf5: > > > > vfio: fix incorrect print type (2020-10-28 10:30:37 -0600) > > > > ---------------------------------------------------------------- > > VFIO update 2020-10-28 > > > > * Migration support (Kirti Wankhede) > > * s390 DMA limiting (Matthew Rosato) > > * zPCI hardware info (Matthew Rosato) > > * Lock guard (Amey Narkhede) > > * Print fixes (Zhengui li) > > * Warning/build fixes > > > > Hi; this fails to build on OSX and the BSDs: > > ../../hw/s390x/s390-pci-vfio.c:13:10: fatal error: 'linux/vfio.h' file not found > #include <linux/vfio.h> > ^~~~~~~~~~~~~~ > > fails differently but on the same file on windows builds: > > ../../hw/s390x/s390-pci-vfio.c:12:23: fatal error: sys/ioctl.h: No > such file or directory I think this can be solved by making s390-pci-vfio.c only compiled under CONFIG_LINUX and stubbing the functions with static inlines in the header. It seems to resolve the windows warning in a mingw build. > and has this error on 32-bit hosts: > > ../../hw/vfio/common.c: In function 'vfio_dma_unmap_bitmap': > ../../hw/vfio/common.c:414:48: error: passing argument 1 of > 'cpu_physical_memory_set_dirty_lebitmap' from incompatible pointer > type [-Werror=incompatible-pointer-types] > cpu_physical_memory_set_dirty_lebitmap((uint64_t *)bitmap->data, > ^ > In file included from ../../hw/vfio/common.c:32:0: > /home/peter.maydell/qemu/include/exec/ram_addr.h:337:20: note: > expected 'long unsigned int *' but argument is of type 'uint64_t * > {aka long long unsigned int *}' > static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned > long *bitmap, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../../hw/vfio/common.c: In function 'vfio_get_dirty_bitmap': > ../../hw/vfio/common.c:1008:44: error: passing argument 1 of > 'cpu_physical_memory_set_dirty_lebitmap' from incompatible pointer > type [-Werror=incompatible-pointer-types] > cpu_physical_memory_set_dirty_lebitmap((uint64_t *)range->bitmap.data, > ^ > In file included from ../../hw/vfio/common.c:32:0: > /home/peter.maydell/qemu/include/exec/ram_addr.h:337:20: note: > expected 'long unsigned int *' but argument is of type 'uint64_t * > {aka long long unsigned int *}' > static inline void cpu_physical_memory_set_dirty_lebitmap(unsigned > long *bitmap, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Seems that our bitmap in just being incorrectly cast as a uint64_t* rather than an unsigned long*. Both fixes being rolled into the next pull request, which I've build 32 and 64 bit and with mingw. Thanks, Alex