• John Keeping's avatar
    usb: f_fs: Force Reserved1=1 in OS_DESC_EXT_COMPAT · a3acc696
    John Keeping authored
    The specification says that the Reserved1 field in OS_DESC_EXT_COMPAT
    must have the value "1", but when this feature was first implemented we
    rejected any non-zero values.
    
    This was adjusted to accept all non-zero values (while now rejecting
    zero) in commit 53642399 ("usb: gadget: f_fs: Fix wrong check on
    reserved1 of OS_DESC_EXT_COMPAT"), but that breaks any userspace
    programs that worked previously by returning EINVAL when Reserved1 == 0
    which was previously the only value that succeeded!
    
    If we just set the field to "1" ourselves, both old and new userspace
    programs continue to work correctly and, as a bonus, old programs are
    now compliant with the specification without having to fix anything
    themselves.
    
    Fixes: 53642399 ("usb: gadget: f_fs: Fix wrong check on reserved1 of OS_DESC_EXT_COMPAT")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarJohn Keeping <john@metanate.com>
    Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
    a3acc696
f_fs.c 87.5 KB