Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1336620

Re: [PATCH] usb: check for signals in chaoskey read function

From Keith Packard <keithp@keithp.com>
Newsgroups linux.kernel
Subject Re: [PATCH] usb: check for signals in chaoskey read function
Date 2016-02-17 19:10 +0100
Message-ID <r3eI2-1Fz-7@gated-at.bofh.it> (permalink)
References <r2E1P-1z0-1@gated-at.bofh.it> <r2Jbc-5ii-29@gated-at.bofh.it> <r2Tkf-3E0-33@gated-at.bofh.it> <r3bTQ-87x-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Oliver Neukum <oneukum@suse.com> writes:

> On Tue, 2016-02-16 at 11:09 -0800, Keith Packard wrote:
>> I could be convinced that the driver should be using a different path
>> through the USB stack that would allow a signal to wake up while
>> waiting
>> for the URB to complete, but this patch at least avoids needing to
>> wait
>> for a huge read to finish. The other option would be to eliminate the
>> loop reading multiple URBs from the device, but that would reduce the
>> available bandwidth from the device pretty considerably.
>
> Do these do the job?

Yup, with a few minor fixes to pass the right arguments:

diff --git a/drivers/usb/misc/chaoskey.c b/drivers/usb/misc/chaoskey.c
index 67102b4..76350e4 100644
--- a/drivers/usb/misc/chaoskey.c
+++ b/drivers/usb/misc/chaoskey.c
@@ -156,14 +156,14 @@ static int chaoskey_probe(struct usb_interface *interface,
 	if (dev->buf == NULL)
 		goto out;
 
-	dev->urb = usb_alloc_urb(GFP_KERNEL, 0);
+	dev->urb = usb_alloc_urb(0, GFP_KERNEL);
 
 	if (!dev->urb)
 		goto out;
 
 	usb_fill_bulk_urb(dev->urb,
 		udev,
-		usb_rcvbulkpipe(udev, altsetting->endpoint[in_ep].desc.bEndpointAddress),
+		usb_rcvbulkpipe(udev, in_ep),
 		dev->buf,
 		size,
 		chaos_read_callback,

The first patch also has the URB allocation, which should be in the
second patch. I removed the comment about 'more bandwidth' as the driver
is still synchronous and runs at the same speed as before.

Thanks very much for making this 'right', instead of just kludging it.

Here's a fixed sequence:

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] usb: check for signals in chaoskey read function Keith Packard <keithp@keithp.com> - 2016-02-16 04:00 +0100
  Re: [PATCH] usb: check for signals in chaoskey read function Oliver Neukum <oneukum@suse.com> - 2016-02-16 09:30 +0100
    Re: [PATCH] usb: check for signals in chaoskey read function Keith Packard <keithp@keithp.com> - 2016-02-16 20:20 +0100
      Re: [PATCH] usb: check for signals in chaoskey read function Oliver Neukum <oneukum@suse.com> - 2016-02-17 16:10 +0100
        Re: [PATCH] usb: check for signals in chaoskey read function Keith Packard <keithp@keithp.com> - 2016-02-17 19:10 +0100
          Re: [PATCH] usb: check for signals in chaoskey read function Keith Packard <keithp@keithp.com> - 2016-02-17 19:30 +0100

csiph-web