All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] I have no idea what I'm doing
@ 2015-07-14 19:16 Chris Mason
  2015-07-14 19:49 ` Marcel Holtmann
  0 siblings, 1 reply; 8+ messages in thread
From: Chris Mason @ 2015-07-14 19:16 UTC (permalink / raw)
  To: linux-bluetooth, Marcel Holtmann

Hi Marcel,

I upgraded my macbook from 4.0.2 to 4.1.2, and now I get
messages similar to this bugzilla:

https://bugzilla.kernel.org/show_bug.cgi?id=100651

and this one:

https://bugzilla.kernel.org/show_bug.cgi?id=101171

[21552.711888] Bluetooth: hci0: BCM: Read verbose config info failed (-16)
[21728.019676] Bluetooth: hci0: BCM: Read verbose config info failed (-16)

A little poking around shows you recently added this check, and from
what I can tell with grep and friends the btbcm_read_verbose_config()
function is completely new?  I don't see similar reads being done by
older kernels.

So, I pushed some code around.  It does compile, but printk proves that
only the second hunk is happening on my box, so testing is somewhat
light.

With this applied, I'm able to use bluetooth again.

Signed-off-by: Chris Mason <clm@fb.com>

diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index 4bba866..90e7099 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -294,11 +294,10 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
 
 	/* Read Verbose Config Version Info */
 	skb = btbcm_read_verbose_config(hdev);
-	if (IS_ERR(skb))
-		return PTR_ERR(skb);
-
-	BT_INFO("%s: BCM: chip id %u", hdev->name, skb->data[1]);
-	kfree_skb(skb);
+	if (!IS_ERR(skb)) {
+		BT_INFO("%s: BCM: chip id %u", hdev->name, skb->data[1]);
+		kfree_skb(skb);
+	}
 
 	switch ((rev & 0xf000) >> 12) {
 	case 0:
@@ -378,12 +377,11 @@ int btbcm_setup_apple(struct hci_dev *hdev)
 
 	/* Read Verbose Config Version Info */
 	skb = btbcm_read_verbose_config(hdev);
-	if (IS_ERR(skb))
-		return PTR_ERR(skb);
-
-	BT_INFO("%s: BCM: chip id %u build %4.4u", hdev->name, skb->data[1],
-		get_unaligned_le16(skb->data + 5));
-	kfree_skb(skb);
+	if (!IS_ERR(skb)) {
+		BT_INFO("%s: BCM: chip id %u build %4.4u", hdev->name, skb->data[1],
+			get_unaligned_le16(skb->data + 5));
+		kfree_skb(skb);
+	}
 
 	set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
 

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-07-14 21:11 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-14 19:16 [PATCH] I have no idea what I'm doing Chris Mason
2015-07-14 19:49 ` Marcel Holtmann
2015-07-14 19:59   ` Chris Mason
2015-07-14 20:49     ` Marcel Holtmann
2015-07-14 20:53       ` Chris Mason
2015-07-14 20:58         ` Marcel Holtmann
2015-07-14 21:01           ` Chris Mason
2015-07-14 21:11             ` Marcel Holtmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.