[PATCH] bluetooth: opcode field of sent commands is little endian.
Fixes built-in Bluetooth not working on Apple PowerBooks, regression from commit 75fb0e324daa48ec458fb5c2960eb07b80cfad9d ('Bluetooth: Fix init sequence for some CSR based controllers'). Cc: sta...@vger.kernel.org [v3.4] Signed-off-by: Michel Dänzer mic...@daenzer.net --- net/bluetooth/hci_core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index d6dc44c..e039e3d 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -92,7 +92,7 @@ void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result) * command. */ - if (cmd != HCI_OP_RESET || sent-opcode == HCI_OP_RESET) + if (cmd != HCI_OP_RESET || sent-opcode == cpu_to_le16(HCI_OP_RESET)) return; skb = skb_clone(hdev-sent_cmd, GFP_ATOMIC); -- 1.7.10.4 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
Hi Michel, Fixes built-in Bluetooth not working on Apple PowerBooks, regression from commit 75fb0e324daa48ec458fb5c2960eb07b80cfad9d ('Bluetooth: Fix init sequence for some CSR based controllers'). Cc: sta...@vger.kernel.org [v3.4] Signed-off-by: Michel Dänzer mic...@daenzer.net --- net/bluetooth/hci_core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index d6dc44c..e039e3d 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -92,7 +92,7 @@ void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result) * command. */ - if (cmd != HCI_OP_RESET || sent-opcode == HCI_OP_RESET) + if (cmd != HCI_OP_RESET || sent-opcode == cpu_to_le16(HCI_OP_RESET)) return; actually you could use __constant_cpu_to_le16() here. That said, this got actually fixed differently upstream. So I prefer if that patch gets merged into stable and not this one. commit 1036b89042df96e71c0cb941be212f8053e0 Author: Andrei Emeltchenko andrei.emeltche...@intel.com Date: Mon Mar 12 15:59:33 2012 +0200 Bluetooth: Fix opcode access in hci_complete In general patches need to get into Linus' tree first before you can even request them for stable. Regards Marcel ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
On Son, 2012-06-24 at 23:51 -0700, Marcel Holtmann wrote: Hi Michel, Fixes built-in Bluetooth not working on Apple PowerBooks, regression from commit 75fb0e324daa48ec458fb5c2960eb07b80cfad9d ('Bluetooth: Fix init sequence for some CSR based controllers'). Cc: sta...@vger.kernel.org [v3.4] Signed-off-by: Michel Dänzer mic...@daenzer.net --- net/bluetooth/hci_core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index d6dc44c..e039e3d 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -92,7 +92,7 @@ void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result) * command. */ - if (cmd != HCI_OP_RESET || sent-opcode == HCI_OP_RESET) + if (cmd != HCI_OP_RESET || sent-opcode == cpu_to_le16(HCI_OP_RESET)) return; actually you could use __constant_cpu_to_le16() here. Yes, but I checked and that's not used anywhere in the bluetooth code yet, so I thought I'd stay consistent for now. That said, this got actually fixed differently upstream. So I prefer if that patch gets merged into stable and not this one. commit 1036b89042df96e71c0cb941be212f8053e0 Author: Andrei Emeltchenko andrei.emeltche...@intel.com Date: Mon Mar 12 15:59:33 2012 +0200 Bluetooth: Fix opcode access in hci_complete Fine with me, though FWIW that not only doesn't use __constant_cpu_to_le16() but actually swaps the non-constant value. Also, it would have been nice if that fix was promoted to stable, so I wouldn't have had to spend a good part of the weekend bisecting... In general patches need to get into Linus' tree first before you can even request them for stable. I know, that's why I only put the stable tag in commit logs but don't submit patches there via e-mail. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
Hi Michel, Fixes built-in Bluetooth not working on Apple PowerBooks, regression from commit 75fb0e324daa48ec458fb5c2960eb07b80cfad9d ('Bluetooth: Fix init sequence for some CSR based controllers'). Cc: sta...@vger.kernel.org [v3.4] Signed-off-by: Michel Dänzer mic...@daenzer.net --- net/bluetooth/hci_core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index d6dc44c..e039e3d 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -92,7 +92,7 @@ void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result) * command. */ - if (cmd != HCI_OP_RESET || sent-opcode == HCI_OP_RESET) + if (cmd != HCI_OP_RESET || sent-opcode == cpu_to_le16(HCI_OP_RESET)) return; actually you could use __constant_cpu_to_le16() here. Yes, but I checked and that's not used anywhere in the bluetooth code yet, so I thought I'd stay consistent for now. not sure what code you are looking at, but I count 18 occurrences and we have been fixing the ones we missed initially. That said, this got actually fixed differently upstream. So I prefer if that patch gets merged into stable and not this one. commit 1036b89042df96e71c0cb941be212f8053e0 Author: Andrei Emeltchenko andrei.emeltche...@intel.com Date: Mon Mar 12 15:59:33 2012 +0200 Bluetooth: Fix opcode access in hci_complete Fine with me, though FWIW that not only doesn't use __constant_cpu_to_le16() but actually swaps the non-constant value. Don't see what point you are trying to make here. Swapping the value from the actual command structure is always fine with me. Also, it would have been nice if that fix was promoted to stable, so I wouldn't have had to spend a good part of the weekend bisecting... Thinks like this happen. However after you bisected the issue you could have just checked what is in Linus' or bluetooth-next tree. Since the first thing I did is go through bluetooth-next and check if we have not fixed that yet. Regards Marcel ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
On Mon, 2012-06-25 at 00:22 -0700, Marcel Holtmann wrote: Hi Michel, Fixes built-in Bluetooth not working on Apple PowerBooks, regression from commit 75fb0e324daa48ec458fb5c2960eb07b80cfad9d ('Bluetooth: Fix init sequence for some CSR based controllers'). Cc: sta...@vger.kernel.org [v3.4] Signed-off-by: Michel Dänzer mic...@daenzer.net --- net/bluetooth/hci_core.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index d6dc44c..e039e3d 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -92,7 +92,7 @@ void hci_req_complete(struct hci_dev *hdev, __u16 cmd, int result) * command. */ - if (cmd != HCI_OP_RESET || sent-opcode == HCI_OP_RESET) + if (cmd != HCI_OP_RESET || sent-opcode == cpu_to_le16(HCI_OP_RESET)) return; actually you could use __constant_cpu_to_le16() here. Yes, but I checked and that's not used anywhere in the bluetooth code yet, so I thought I'd stay consistent for now. not sure what code you are looking at, but I count 18 occurrences and we have been fixing the ones we missed initially. Okay, good then. As you probably noticed from the rest of my posts, I only checked up to 3.4. That said, this got actually fixed differently upstream. So I prefer if that patch gets merged into stable and not this one. commit 1036b89042df96e71c0cb941be212f8053e0 Author: Andrei Emeltchenko andrei.emeltche...@intel.com Date: Mon Mar 12 15:59:33 2012 +0200 Bluetooth: Fix opcode access in hci_complete Fine with me, though FWIW that not only doesn't use __constant_cpu_to_le16() but actually swaps the non-constant value. Don't see what point you are trying to make here. Swapping the value from the actual command structure is always fine with me. The point is that the result of swapping a constant value is just another constant value, whereas the fix in mainline swaps a value from memory. Not a big deal. Also, it would have been nice if that fix was promoted to stable, so I wouldn't have had to spend a good part of the weekend bisecting... Thinks like this happen. However after you bisected the issue you could have just checked what is in Linus' or bluetooth-next tree. You're probably right. It just didn't occur to me that someone would have fixed this but not forwarded the fix to stable, because I generally do that. :} Will you submit the fix to stable, or should I? -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
Hi Michel, On Mon, Jun 25, 2012 at 09:32:50AM +0200, Michel Dänzer wrote: Also, it would have been nice if that fix was promoted to stable, so I wouldn't have had to spend a good part of the weekend bisecting... Thinks like this happen. However after you bisected the issue you could have just checked what is in Linus' or bluetooth-next tree. You're probably right. It just didn't occur to me that someone would have fixed this but not forwarded the fix to stable, because I generally do that. :} Sorry for that, this and bunch of other fixes for byte order bugs needs to be promoted to stable. Will you submit the fix to stable, or should I? I added Gustavo to CC as he usually makes pull requests. Best regards Andrei Emeltchenko ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
RE: [PATCH] bluetooth: opcode field of sent commands is little endian.
Fine with me, though FWIW that not only doesn't use __constant_cpu_to_le16() but actually swaps the non-constant value. Don't see what point you are trying to make here. Swapping the value from the actual command structure is always fine with me. The point is that the result of swapping a constant value is just another constant value, whereas the fix in mainline swaps a value from memory. Not a big deal. Surely, but surely, the definition of cpu_to_le16() uses gcc 'magic' to determine that the argument is a constant and then automatically selects the 'constant' form. David ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] bluetooth: opcode field of sent commands is little endian.
On Mon, 2012-06-25 at 10:20 +0100, David Laight wrote: Fine with me, though FWIW that not only doesn't use __constant_cpu_to_le16() but actually swaps the non-constant value. Don't see what point you are trying to make here. Swapping the value from the actual command structure is always fine with me. The point is that the result of swapping a constant value is just another constant value, whereas the fix in mainline swaps a value from memory. Not a big deal. Surely, but surely, the definition of cpu_to_le16() uses gcc 'magic' to determine that the argument is a constant and then automatically selects the 'constant' form. It can only do that if the argument is constant in the first place though. :) -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev