Lines Matching refs:urb
28 static int is_clear_halt_cmd(struct urb *urb) in is_clear_halt_cmd() argument
32 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_clear_halt_cmd()
39 static int is_set_interface_cmd(struct urb *urb) in is_set_interface_cmd() argument
43 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_set_interface_cmd()
49 static int is_set_configuration_cmd(struct urb *urb) in is_set_configuration_cmd() argument
53 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_set_configuration_cmd()
59 static int is_reset_device_cmd(struct urb *urb) in is_reset_device_cmd() argument
65 req = (struct usb_ctrlrequest *) urb->setup_packet; in is_reset_device_cmd()
78 static int tweak_clear_halt_cmd(struct urb *urb) in tweak_clear_halt_cmd() argument
86 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_clear_halt_cmd()
99 target_pipe = usb_rcvctrlpipe(urb->dev, target_endp); in tweak_clear_halt_cmd()
101 target_pipe = usb_sndctrlpipe(urb->dev, target_endp); in tweak_clear_halt_cmd()
103 ret = usb_clear_halt(urb->dev, target_pipe); in tweak_clear_halt_cmd()
105 dev_err(&urb->dev->dev, in tweak_clear_halt_cmd()
107 urb->dev->devnum, target_endp, ret); in tweak_clear_halt_cmd()
109 dev_info(&urb->dev->dev, in tweak_clear_halt_cmd()
111 urb->dev->devnum, target_endp); in tweak_clear_halt_cmd()
116 static int tweak_set_interface_cmd(struct urb *urb) in tweak_set_interface_cmd() argument
123 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_set_interface_cmd()
130 ret = usb_set_interface(urb->dev, interface, alternate); in tweak_set_interface_cmd()
132 dev_err(&urb->dev->dev, in tweak_set_interface_cmd()
136 dev_info(&urb->dev->dev, in tweak_set_interface_cmd()
143 static int tweak_set_configuration_cmd(struct urb *urb) in tweak_set_configuration_cmd() argument
145 struct stub_priv *priv = (struct stub_priv *) urb->context; in tweak_set_configuration_cmd()
151 req = (struct usb_ctrlrequest *) urb->setup_packet; in tweak_set_configuration_cmd()
161 static int tweak_reset_device_cmd(struct urb *urb) in tweak_reset_device_cmd() argument
163 struct stub_priv *priv = (struct stub_priv *) urb->context; in tweak_reset_device_cmd()
166 dev_info(&urb->dev->dev, "usb_queue_reset_device\n"); in tweak_reset_device_cmd()
174 dev_err(&urb->dev->dev, "could not obtain lock to reset device\n"); in tweak_reset_device_cmd()
186 static void tweak_special_requests(struct urb *urb) in tweak_special_requests() argument
188 if (!urb || !urb->setup_packet) in tweak_special_requests()
191 if (usb_pipetype(urb->pipe) != PIPE_CONTROL) in tweak_special_requests()
194 if (is_clear_halt_cmd(urb)) in tweak_special_requests()
196 tweak_clear_halt_cmd(urb); in tweak_special_requests()
198 else if (is_set_interface_cmd(urb)) in tweak_special_requests()
200 tweak_set_interface_cmd(urb); in tweak_special_requests()
202 else if (is_set_configuration_cmd(urb)) in tweak_special_requests()
204 tweak_set_configuration_cmd(urb); in tweak_special_requests()
206 else if (is_reset_device_cmd(urb)) in tweak_special_requests()
207 tweak_reset_device_cmd(urb); in tweak_special_requests()
233 dev_info(&priv->urb->dev->dev, "unlink urb %p\n", in stub_recv_cmd_unlink()
234 priv->urb); in stub_recv_cmd_unlink()
271 ret = usb_unlink_urb(priv->urb); in stub_recv_cmd_unlink()
273 dev_err(&priv->urb->dev->dev, in stub_recv_cmd_unlink()
275 priv->urb, ret); in stub_recv_cmd_unlink()
394 static void masking_bogus_flags(struct urb *urb) in masking_bogus_flags() argument
402 if (!urb || urb->hcpriv || !urb->complete) in masking_bogus_flags()
404 dev = urb->dev; in masking_bogus_flags()
408 ep = (usb_pipein(urb->pipe) ? dev->ep_in : dev->ep_out) in masking_bogus_flags()
409 [usb_pipeendpoint(urb->pipe)]; in masking_bogus_flags()
416 (struct usb_ctrlrequest *) urb->setup_packet; in masking_bogus_flags()
445 urb->transfer_flags &= allowed; in masking_bogus_flags()
463 priv->urb = usb_alloc_urb(pdu->u.cmd_submit.number_of_packets, in stub_recv_cmd_submit()
466 priv->urb = usb_alloc_urb(0, GFP_KERNEL); in stub_recv_cmd_submit()
468 if (!priv->urb) { in stub_recv_cmd_submit()
476 priv->urb->transfer_buffer = in stub_recv_cmd_submit()
479 if (!priv->urb->transfer_buffer) { in stub_recv_cmd_submit()
486 priv->urb->setup_packet = kmemdup(&pdu->u.cmd_submit.setup, 8, in stub_recv_cmd_submit()
488 if (!priv->urb->setup_packet) { in stub_recv_cmd_submit()
495 priv->urb->context = (void *) priv; in stub_recv_cmd_submit()
496 priv->urb->dev = udev; in stub_recv_cmd_submit()
497 priv->urb->pipe = pipe; in stub_recv_cmd_submit()
498 priv->urb->complete = stub_complete; in stub_recv_cmd_submit()
500 usbip_pack_pdu(pdu, priv->urb, USBIP_CMD_SUBMIT, 0); in stub_recv_cmd_submit()
503 if (usbip_recv_xbuff(ud, priv->urb) < 0) in stub_recv_cmd_submit()
506 if (usbip_recv_iso(ud, priv->urb) < 0) in stub_recv_cmd_submit()
510 tweak_special_requests(priv->urb); in stub_recv_cmd_submit()
512 masking_bogus_flags(priv->urb); in stub_recv_cmd_submit()
514 ret = usb_submit_urb(priv->urb, GFP_KERNEL); in stub_recv_cmd_submit()
522 usbip_dump_urb(priv->urb); in stub_recv_cmd_submit()