qemu-e2k/hw
Alex Williamson 24acf72b9a vfio: Handle zero-length sparse mmap ranges
As reported in the link below, user has a PCI device with a 4KB BAR
which contains the MSI-X table.  This seems to hit a corner case in
the kernel where the region reports being mmap capable, but the sparse
mmap information reports a zero sized range.  It's not entirely clear
that the kernel is incorrect in doing this, but regardless, we need
to handle it.  To do this, fill our mmap array only with non-zero
sized sparse mmap entries and add an error return from the function
so we can tell the difference between nr_mmaps being zero based on
sparse mmap info vs lack of sparse mmap info.

NB, this doesn't actually change the behavior of the device, it only
removes the scary "Failed to mmap ... Performance may be slow" error
message.  We cannot currently create an mmap over the MSI-X table.

Link: http://lists.nongnu.org/archive/html/qemu-discuss/2016-10/msg00009.html
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2016-10-31 09:53:03 -06:00
..
9pfs 9pfs: fix memory leak in v9fs_write 2016-10-17 14:13:58 +02:00
acpi pc: Leave max apic_id_limit only in legacy cpu hotplug code 2016-10-24 17:29:15 -02:00
adc STM32F2xx: Add the ADC device 2016-10-04 13:28:07 +01:00
alpha sun4uv: fix serial initialization regression 2016-10-24 15:27:20 +02:00
arm hw/arm/tosa: Fix reset handling 2016-10-28 15:51:27 +01:00
audio audio: intel-hda: check stream entry count during transfer 2016-10-26 14:51:44 +02:00
block Xen 2016/10/28 2016-10-31 12:35:39 +00:00
bt char: replace avail_connections 2016-10-24 15:46:10 +02:00
char Xen 2016/10/28 2016-10-31 12:35:39 +00:00
core hw/ptimer: Add "no counter round down" policy 2016-10-24 16:26:52 +01:00
cpu
cris cris: Fix broken header guard in hw/cris/boot.h 2016-07-12 16:20:46 +02:00
display Xen 2016/10/28 2016-10-31 12:35:39 +00:00
dma hw/dma/pl080: Fix bad bit mask (PL080_CONF_M1 | PL080_CONF_M1) 2016-10-17 19:22:17 +01:00
gpio i.MX: Fix GPIO ISR register write 2016-10-28 15:51:27 +01:00
i2c i2c: Add asserts for second smbus i2c_start_transfer() 2016-10-24 16:48:02 +01:00
i386 clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
ide macio: switch over to new byte-aligned DMA helpers 2016-10-27 16:29:13 -04:00
input adb: change handler only when recognized 2016-10-28 09:38:26 +11:00
intc pseries: Move construction of /interrupt-controller fdt node 2016-10-28 09:38:26 +11:00
ipack
ipmi char: remove explicit_fe_open, use a set_handlers argument 2016-10-24 15:46:10 +02:00
isa char: remove init callback 2016-10-24 15:27:20 +02:00
lm32 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
m68k m68k: change default system clock for m5208evb 2016-10-08 11:25:29 +03:00
mem trace: move hw/mem/pc-dimm.c trace points into correct file 2016-09-28 19:17:54 +01:00
microblaze clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
mips clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
misc milkymist-pfpu: fix potential integer overflow 2016-10-28 18:17:23 +03:00
moxie
net xen: Rename xen_be_send_notify 2016-10-28 17:54:21 -07:00
nvram trivial patches for 2016-10-28 2016-10-31 11:58:30 +00:00
openrisc
pci trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
pci-bridge clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
pci-host apb: convert init to realize 2016-07-29 00:07:09 +03:00
pcmcia
ppc trivial patches for 2016-10-28 2016-10-31 11:58:30 +00:00
s390x Two PCI fixes/improvements for s390x. 2016-10-31 14:48:47 +00:00
scsi -----BEGIN PGP SIGNATURE----- 2016-10-31 10:10:16 +00:00
sd vmstateify ssi-sd 2016-09-22 18:13:08 +01:00
sh4 sh4: fix broken link to documentation 2016-09-15 15:32:22 +03:00
smbios smbios: fix uuid copy 2016-09-29 11:43:22 +08:00
sparc nvram: Rename openbios_firmware_abi.h into sun_nvram.h 2016-10-28 09:36:58 +11:00
sparc64 nvram: Rename openbios_firmware_abi.h into sun_nvram.h 2016-10-28 09:36:58 +11:00
ssi xilinx: fix buffer overflow on realize 2016-10-24 15:27:20 +02:00
timer clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
tpm clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
tricore tricore: remove useless cast 2016-09-15 15:32:22 +03:00
unicore32 clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
usb Xen 2016/10/28 2016-10-31 12:35:39 +00:00
vfio vfio: Handle zero-length sparse mmap ranges 2016-10-31 09:53:03 -06:00
virtio char: use qemu_chr_fe* functions with CharBackend argument 2016-10-24 15:27:21 +02:00
watchdog
xen xen: Rename xen_be_del_xendev 2016-10-28 17:54:49 -07:00
xenpv xenpv: Fix qemu_uuid compiling error 2016-09-29 11:43:17 +08:00
xtensa char: remove init callback 2016-10-24 15:27:20 +02:00
Makefile.objs STM32F2xx: Add the ADC device 2016-10-04 13:28:07 +01:00