This series is in response to feedback from Gerd Hoffman (below) on
<1548859022-3969-1-git-send-email-liam.merwick@oracle.com>
Instead of checking if usb_ep_get() returns NULL, ensure it never is passed
a NULL device.
===
The usb device emulation (hw/usb/dev-*.c) never ever calls usb_ep_get()
with dev == NULL. There are some places in usb host adapter emulation
(hw/usb/hcd-*) which might do this. uhci for example has this ...
[ ... ]
USBDevice *dev = uhci_find_device(s, (td->token >> 8) & 0x7f);
USBEndpoint *ep = usb_ep_get(dev, pid, (td->token >> 15) & 0xf);
if (ep == NULL) {
[ ... ]
... and uhci_find_device can return NULL.
So, I'd suggest to check all usb_ep_get() callers, fix them if needed,
then remove the 'if (dev== NULL)' check in usb_ep_get() and add the
assert() instead.
===
Passes QEMU 'make check' and kvm-unit-tests
Liam Merwick (9):
usb: rearrange usb_ep_get()
xhci: add asserts to help with static code analysis
xhci: check device is not NULL before calling usb_ep_get()
ehci: check device is not NULL before calling usb_ep_get()
ohci: check device is not NULL before calling usb_ep_get()
uhci: check device is not NULL before calling usb_ep_get()
usb: check device is not NULL before calling usb_ep_get()
usb: add device checks before redirector calls to usb_ep_get()
usb: remove unnecessary NULL device check from usb_ep_get()
hw/usb/core.c | 6 ++----
hw/usb/hcd-ehci.c | 7 +++++--
hw/usb/hcd-musb.c | 8 ++++----
hw/usb/hcd-ohci.c | 8 ++++++++
hw/usb/hcd-uhci.c | 8 +++++---
hw/usb/hcd-xhci.c | 6 ++++--
hw/usb/redirect.c | 3 ++-
7 files changed, 30 insertions(+), 16 deletions(-)
--
1.8.3.1