Google
  Web www.spinics.net

Re: usbfs and MAX_USBFS_BUFFER_SIZE

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


On Sat, 01 Dec 2007 18:06:42 +0000, Daniel Drake <dsd@xxxxxxxxxx> wrote:

> Can someone explain the purpose of MAX_USBFS_BUFFER_SIZE?
> It is defined in drivers/usb/core/devio.c:
> 
> 	#define	MAX_USBFS_BUFFER_SIZE	16384

It's there to prevent random failures because of memory fragmentation,
by turning them into reliable failures.

> If you want to do a control transfer of larger size, you're out of luck! 
> You can't divide up control messages like that, since the setup packet 
> header for each URB is interpreted by the device.
> 
> It looks like the only way to submit control URBs larger than 16kb using 
> usbfs is to use the synchronous USBDEVFS_CONTROL ioctl -- there is no 
> async way.

The control should be limited to a page. It is preposterous to think
of anyone trying to send a control message with a buffer bigger than
a couple hundred bytes, a thousand at most. If you managed to trick
USBDEVFS_CONTROL into sending more than 16KB at a go, a check must be
missing somewhere.

-- Pete

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

[Home]     [Video for Linux]     [Photo]     [Yosemite Forum]     [Yosemite Photos]    [Video Projectors]     [PDAs]     [Hacking TiVo]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]     [Big List of Linux Books]     [Free Dating]

  Powered by Linux