qemu-patch-raspberry4/hw
Gonglei 5f77e06baa usb: add pid check at the first of uhci_handle_td()
pid can be gotten from uhci device memory in uhci_handle_td(),
so the guest can trigger assert qemu if we get an invalid pid.
And the uhci spec 2.1.2 tells us The Host Controller sets Host
Controller Process Error bit to 1 when it detects a fatal error
and indicates that the Host Controller suffered a consistency
check failure while processing a Transfer Descriptor. An example
of a consistency check failure would be finding an illegal PID
field while processing the packet header portion of the TD.
When this error occurs, the Host Controller clears the Run/Stop
bit in the Command register to prevent further schedule execution.

We'd better to set UHCI_STS_HCPERR and kick an interrupt, check
the pid value at the first of uhci_handle_td function.

https://bugzilla.redhat.com/show_bug.cgi?id=1070027

Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Message-id: 1455867238-4720-1-git-send-email-arei.gonglei@huawei.com

[ applied minor codestyle fix ]

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-23 10:38:01 +01:00
..
9pfs virtio: move allocation to virtqueue_pop/vring_pop 2016-02-06 20:39:07 +02:00
acpi qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
alpha alpha: Clean up includes 2016-01-29 15:07:23 +00:00
arm hw/arm/sysbus-fdt: remove qemu_fdt_setprop returned value check 2016-02-19 09:42:31 -07:00
audio ES1370: QOMify 2016-02-11 15:15:46 +03:00
block hw/block/nand.c: Include osdep.h first 2016-02-16 14:29:26 +00:00
bt hw: Clean up includes 2016-01-29 15:07:25 +00:00
char virtio: introduce qemu_get/put_virtqueue_element 2016-02-06 20:44:08 +02:00
core qapi: Drop unused 'kind' for struct/enum visit 2016-02-08 17:29:57 +01:00
cpu hw: Clean up includes 2016-01-29 15:07:25 +00:00
cris cris: Clean up includes 2016-01-29 15:07:24 +00:00
display xen: Drop __XEN_LATEST_INTERFACE_VERSION__ checks from prior to Xen 4.2 2016-02-10 12:01:32 +00:00
dma etraxfs_dma: Dont forward zero-length payload to clients 2016-02-20 00:17:48 +01:00
gpio ARM: PL061: Cleaning field of PL061 device state 2016-02-18 14:26:33 +00:00
i2c hw: Clean up includes 2016-01-29 15:07:25 +00:00
i386 xen: drop support for Xen 4.1 and older. 2016-02-10 12:01:16 +00:00
ide ahci: prohibit "restarting" the FIS or CLB engines 2016-02-10 13:29:40 -05:00
input cuda: port SET_DEVICE_LIST command to new framework 2016-02-17 09:59:30 +11:00
intc all: Clean up includes 2016-02-16 14:29:28 +00:00
ipack hw: Clean up includes 2016-01-29 15:07:25 +00:00
ipmi ipmi: sensor number should not exceed MAX_SENSORS 2016-02-16 16:41:25 +01:00
isa qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
lm32 lm32: Clean up includes 2016-01-29 15:07:22 +00:00
m68k m68k: Clean up includes 2016-01-29 15:07:24 +00:00
mem qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
microblaze microblaze: Clean up includes 2016-01-28 11:13:13 +00:00
mips magnum: disable floppy DMA for now 2016-02-03 11:28:57 -05:00
misc cuda: remove CUDA_GET_SET_IIC/CUDA_COMBINED_FORMAT_IIC commands 2016-02-17 09:59:31 +11:00
moxie moxie: Clean up includes 2016-01-29 15:07:25 +00:00
net vhost-user interrupt management fixes 2016-02-18 16:13:56 +02:00
nvram hw: fix some debug message format strings 2016-02-17 09:59:29 +11:00
openrisc openrisc: Clean up includes 2016-01-29 15:07:24 +00:00
pci pcie_aer: expose pcie_aer_msg() interface 2016-02-19 09:42:28 -07:00
pci-bridge aer: impove pcie_aer_init to support vfio device 2016-02-19 09:42:28 -07:00
pci-host vhost, virtio, pci, pxe 2016-02-19 10:50:37 +00:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc hw/ppc/spapr: Halt CPU when powering off via RTAS call 2016-02-18 11:08:43 +11:00
s390x s390x: remove s390-zipl.rom 2016-02-11 15:15:47 +03:00
scsi mptsas: fix wrong formula 2016-02-16 16:41:22 +01:00
sd hw/sd: use guest error logging rather than fprintf to stderr 2016-02-18 14:50:50 +00:00
sh4 sh4: Clean up includes 2016-01-29 15:07:24 +00:00
smbios hw: Clean up includes 2016-01-29 15:07:25 +00:00
sparc dma: remove now useless DMA_* functions 2016-02-03 11:28:58 -05:00
sparc64 dma: remove now useless DMA_* functions 2016-02-03 11:28:58 -05:00
ssi hw: Clean up includes 2016-01-29 15:07:25 +00:00
timer tusb6010: move from hw/timer to hw/usb 2016-02-23 10:38:00 +01:00
tpm hw: Clean up includes 2016-01-29 15:07:25 +00:00
tricore tricore: Clean up includes 2016-01-29 15:07:25 +00:00
unicore32 unicore: Clean up includes 2016-01-29 15:07:22 +00:00
usb usb: add pid check at the first of uhci_handle_td() 2016-02-23 10:38:01 +01:00
vfio vfio/pci: use PCI_MSIX_FLAGS on retrieving the MSIX entries 2016-02-19 09:42:32 -07:00
virtio vhost-user interrupt management fixes 2016-02-18 16:13:56 +02:00
watchdog hw: Clean up includes 2016-01-29 15:07:25 +00:00
xen xen: drop XenXC and associated interface wrappers 2016-02-10 12:01:24 +00:00
xenpv xen: Clean up includes 2016-01-29 15:07:23 +00:00
xtensa xtensa: Clean up includes 2016-01-29 15:07:24 +00:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00