Hi Max, > Fix the issue that when the FW size is 32K+, it will fail for the download > process because of the incorrect index. > > Signed-off-by: Max Chou <max.chou@xxxxxxxxxxx> > --- > drivers/bluetooth/btrtl.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c > index 0354e93e7a7c..215896af0259 100644 > --- a/drivers/bluetooth/btrtl.c > +++ b/drivers/bluetooth/btrtl.c > @@ -389,6 +389,7 @@ static int rtl_download_firmware(struct hci_dev *hdev, > int frag_len = RTL_FRAG_LEN; > int ret = 0; > int i; > + int j; > struct sk_buff *skb; > struct hci_rp_read_local_version *rp; > > @@ -401,7 +402,12 @@ static int rtl_download_firmware(struct hci_dev *hdev, > > BT_DBG("download fw (%d/%d)", i, frag_num); > > - dl_cmd->index = i; > + if (i > 0x7f) > + j = (i & 0x7f) + 1; > + else > + j = i; > + > + dl_cmd->index = j; so this seems rather complicated with the extra variable. if (i > 0x7f) dl_cmd->index = (i & 0x7f) + 1; else dl_cmd->index = i; And I would prefer to have a small comment above on why this is done this way. Regards Marcel