Unverified Commit 715938fd authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!10642 usb: atm: cxacru: fix endpoint checking in cxacru_bind()

parents 5d40a28f 3a378778
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1134,6 +1134,7 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance,
	struct cxacru_data *instance;
	struct usb_device *usb_dev = interface_to_usbdev(intf);
	struct usb_host_endpoint *cmd_ep = usb_dev->ep_in[CXACRU_EP_CMD];
	struct usb_endpoint_descriptor *in, *out;
	int ret;

	/* instance init */
@@ -1180,6 +1181,19 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance,
		goto fail;
	}

	if (usb_endpoint_xfer_int(&cmd_ep->desc))
		ret = usb_find_common_endpoints(intf->cur_altsetting,
						NULL, NULL, &in, &out);
	else
		ret = usb_find_common_endpoints(intf->cur_altsetting,
						&in, &out, NULL, NULL);

	if (ret) {
		usb_err(usbatm_instance, "cxacru_bind: interface has incorrect endpoints\n");
		ret = -ENODEV;
		goto fail;
	}

	if ((cmd_ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
			== USB_ENDPOINT_XFER_INT) {
		usb_fill_int_urb(instance->rcv_urb,