Re: [PATCH 3/4] usbdevfs: Use scatter-gather lists for large bulk transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jul 07, 2012 at 09:11:27AM +0200, Hans de Goede wrote:
> Hi,
> 
> On 07/06/2012 07:51 PM, Greg Kroah-Hartman wrote:
> >On Wed, Jul 04, 2012 at 09:18:03AM +0200, Hans de Goede wrote:
> >>+static void snoop_urb_data(struct urb *urb, unsigned len)
> >>+{
> >>+	int i, size;
> >>+
> >>+	if (!usbfs_snoop)
> >>+		return;
> >>+
> >>+	if (urb->num_sgs == 0) {
> >>+		print_hex_dump(KERN_DEBUG, "data: ", DUMP_PREFIX_NONE, 32, 1,
> >>+			urb->transfer_buffer, len, 1);
> >>+		return;
> >>+	}
> >>+
> >>+	for (i = 0; i < urb->num_sgs && len; i++) {
> >>+		size = (len > USB_SG_SIZE) ? USB_SG_SIZE : len;
> >>+		print_hex_dump(KERN_DEBUG, "data: ", DUMP_PREFIX_NONE, 32, 1,
> >>+			sg_virt(&urb->sg[i]), size, 1);
> >>+		len -= size;
> >>+	}
> >>+}
> >
> >Minor cleanup in the future, can't this be merged with snoop_urb() that
> >way you don't have to do the logic checking in the places you call this
> >function instead of snoop_urb()?  That would make it a bit simpler for
> >the "normal" code path, right?
> 
> Alan already made the same remark :) The problem is that snoop_urb is
> also used for logging the synchronous urb ioctls, where there is no urb.
> So making snoop_urb generic would require it gaining a struct urb *
> argument while keeping its unsigned char *data and int data_len
> arguments, and add an if (urb) ... else in there, so this way seems
> better.

Ok, fair enough.  If I get annoyed I'll go see if I can figure out how
to simplify it later, as I think I'm the only one that uses it :)

Actually, I'll probably just move it to use the tracepoint
infrastructure, as that's the proper thing to do in the end.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux