• Micah Dowty's avatar
    [PATCH] USB: Remove 4088-byte limit on usbfs control URBs · e016683d
    Micah Dowty authored
    This patch removes the artificial 4088-byte limit that usbfs
    currently places on Control transfers. The USB spec does not
    specify a strict limit on the size of an entire control transfer.
    It does, however, state that the data stage "follows the same
    protocol rules as bulk transfers." (USB 2, 8.5.3)
    
    The level of support for large control transfers in real host
    controllers varies, but it's important to support at least 4K
    transfers. Windows enforces a maximum control transfer size
    of 4K, so there exists some hardware that requires a full 4096
    byte data stage. Without this patch, we fall short of that by
    8 bytes on architectures with a 4K page size, and it becomes
    impossible to support such hardware with a user-space driver.
    
    Since any limit placed on control transfers by usbfs would be
    arbitrary, this patch replaces the PAGE_SIZE limit with the same
    arbitrary limit used by bulk transfers.
    Signed-off-by: default avatarMicah Dowty <micah@vmware.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    e016683d
devio.c 42.4 KB