The following series of three patches changes the way usbfs limits memory usage. Currently each bulk (and interrupt, but that doesn't matter so much) URB is restricted to a relatively small transfer buffer. In addition to being highly arbitrary, this limit does nothing to prevent users from allocating all of the kernel's DMA-able memory by submitting many small URBs. The new system removes the limits on individual URBs. If sufficient contiguous kernel memory is available, the URB will be accepted. Instead, we have a global limit on the total amount of memory that will be used for usbfs buffers. This limit is controlled by a writable module parameter, so that users can adjust it at runtime if they need more space than the default allows. Testing of these patches has been fairly minimal, but I don't expect any serious problems. The patches are organized as follows: 1/3 unifies the error pathways in the various URB-submission routines, to make memory accounting simpler. 2/3 removes the transfer-buffer size limitation and installs the global memory limit. 3/3 changes the global memory limit from a fixed constant to a writable module parameter. Alan Stern -- 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