]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Bluetooth: btusb: Fix secure send command length alignment on Intel 8260
authorMarcel Holtmann <marcel@holtmann.org>
Sun, 7 Jun 2015 07:47:08 +0000 (09:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Aug 2015 16:28:58 +0000 (09:28 -0700)
commit2f5ce3a02ce2e5dbf14f4f391cb88a4682b0019d
treea8225aec64a728df924161f3af55e0e4096d6672
parenta5b637f8893adb8ccd17f6f92158241e8537aba8
Bluetooth: btusb: Fix secure send command length alignment on Intel 8260

commit e66890a96abbb746e1229c3067471be36dc49b34 upstream.

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: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Tested-by: Tedd Ho-Jeong An <tedd.an@intel.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bluetooth/btusb.c