From: Petri Gynther Date: Wed, 10 Feb 2016 20:00:46 +0000 (-0800) Subject: Bluetooth: btbcm: Fix handling of firmware not found X-Git-Tag: next-20160301~75^2~16 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ad750fa142747f3f42b66ae051a0f275bd2035df;p=karo-tx-linux.git Bluetooth: btbcm: Fix handling of firmware not found If the call to request_firmware() fails in btbcm_setup_patchram(), the BCM chip will be operating with its default firmware. In this case, btbcm_setup_patchram() should not return immediately but instead should skip to btbcm_check_bdaddr() and quirk setup. Signed-off-by: Petri Gynther Signed-off-by: Marcel Holtmann --- diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c index 0b697946e9bc..fdb44829ab6f 100644 --- a/drivers/bluetooth/btbcm.c +++ b/drivers/bluetooth/btbcm.c @@ -467,7 +467,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev) err = request_firmware(&fw, fw_name, &hdev->dev); if (err < 0) { BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name); - return 0; + goto done; } btbcm_patchram(hdev, fw); @@ -501,6 +501,7 @@ int btbcm_setup_patchram(struct hci_dev *hdev) BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); kfree_skb(skb); +done: btbcm_check_bdaddr(hdev); set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);