> > > * https://gitlab.com/qemu-project/qemu/-/issues/119
> > > * https://gitlab.com/qemu-project/qemu/-/issues/303

> diff --git a/hw/usb/core.c b/hw/usb/core.c
> index 975f762..a29b378 100644
> --- a/hw/usb/core.c
> +++ b/hw/usb/core.c
> @@ -735,10 +735,11 @@ void usb_ep_dump(USBDevice *dev)
> 
>  struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep)
>  {
>      struct USBEndpoint *eps;
> 
>      assert(dev != NULL);
> -    if (ep == 0) {
> +    if (ep == 0 || pid == USB_TOKEN_SETUP) {
>          return &dev->ep_ctl;
>      }

Looks sane to me, although I'm not sure it matches what
real hardware does.

Can you submit that as proper patch (including Resolves: for the gitlab
issues fixed)?

> > message and fail the operation? AFAIK there are no real-world devices
> > that have Control endpoints other than 0, although I believe it is allowed
> > by the USB spec.

IIRC control endpoint is zero by spec.

thanks & take care,
  Gerd


Reply via email to