• Marcel Holtmann's avatar
    Bluetooth: btusb: Fix secure send command length alignment on Intel 8260 · e66890a9
    Marcel Holtmann authored
    This patch fixes the command length alignment issue for Intel Bluetooth
    8260.
    
    The length of parameters in the firmware downloading command must be
    multiplication of 4. If not, the command must append Intel_NOP command
    with extra parameters, zeros, at the end, and the firmware file is
    already included Intel_NOP command for alignment.
    
    This patch checks the next command and if the next command is Intel_NOP
    command, it reads the Intel_NOP command and send them together.
    
    For example, if the data from the firmware file looks like this:
    8E FC 03 11 22 33 02 FC 03 00 00 00
    
    Previously, btusb sends two commands:
    09 FC 06 8E FC 03 11 22 33
    09 FC 06 02 FC 03 00 00 00
    
    This won't work because the length of parameters are 6 which violates
    the 4 byte alignment.
    
    This patch will append them together and send as one command:
    09 FC 0C 8E FC 03 11 22 33 02 FC 03 00 00 00
    
    Based on previous work from Tedd Ho-Jeong An <tedd.an@intel.com>
    Reported-by: default avatarTedd Ho-Jeong An <tedd.an@intel.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    Tested-by: default avatarTedd Ho-Jeong An <tedd.an@intel.com>
    Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
    Cc: stable@vger.kernel.org
    e66890a9
btusb.c 76.9 KB