* Re: [PATCH] Bluetooth: Remove unnecessary 'send' parameter from smp_failure()
From: Johan Hedberg @ 2013-11-06 13:44 UTC (permalink / raw)
To: Anderson Lizardo; +Cc: BlueZ development
In-Reply-To: <CAJdJm_Mj4AUHka3y5T1T=GEAATbuzwgsB20dLSMEzpdzi56jbA@mail.gmail.com>
Hi Lizardo,
On Wed, Nov 06, 2013, Anderson Lizardo wrote:
> On Wed, Nov 6, 2013 at 9:31 AM, Anderson Lizardo
> <anderson.lizardo@openbossa.org> wrote:
> > Hi Johan,
> >
> > On Wed, Nov 6, 2013 at 5:24 AM, <johan.hedberg@gmail.com> wrote:
> >
> >> @@ -895,7 +895,7 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
> >> break;
> >>
> >> case SMP_CMD_PAIRING_FAIL:
> >> - smp_failure(conn, skb->data[0], 0);
> >> + smp_failure(conn, 0);
> >
> > I think you meant "smp_failure(conn, skb->data[0]);" here.
>
> My bad, I see now that the purpose is to not send an error in this case.
Exactly. Which is why the original code was misleading in that you might
have thought it actually did something with skb->data[0].
Johan
^ permalink raw reply
* Re: [PATCH] Bluetooth: Remove unnecessary 'send' parameter from smp_failure()
From: Anderson Lizardo @ 2013-11-06 13:32 UTC (permalink / raw)
To: Johan Hedberg; +Cc: BlueZ development
In-Reply-To: <CAJdJm_MGVDvH4h71PgD6YWavOBm=xpgnh1nMtFNtEpL7gEQQcw@mail.gmail.com>
Hi again,
On Wed, Nov 6, 2013 at 9:31 AM, Anderson Lizardo
<anderson.lizardo@openbossa.org> wrote:
> Hi Johan,
>
> On Wed, Nov 6, 2013 at 5:24 AM, <johan.hedberg@gmail.com> wrote:
>
>> @@ -895,7 +895,7 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
>> break;
>>
>> case SMP_CMD_PAIRING_FAIL:
>> - smp_failure(conn, skb->data[0], 0);
>> + smp_failure(conn, 0);
>
> I think you meant "smp_failure(conn, skb->data[0]);" here.
My bad, I see now that the purpose is to not send an error in this case.
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
^ permalink raw reply
* Re: [PATCH] Bluetooth: Remove unnecessary 'send' parameter from smp_failure()
From: Anderson Lizardo @ 2013-11-06 13:31 UTC (permalink / raw)
To: Johan Hedberg; +Cc: BlueZ development
In-Reply-To: <1383729897-28492-1-git-send-email-johan.hedberg@gmail.com>
Hi Johan,
On Wed, Nov 6, 2013 at 5:24 AM, <johan.hedberg@gmail.com> wrote:
> @@ -895,7 +895,7 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
> break;
>
> case SMP_CMD_PAIRING_FAIL:
> - smp_failure(conn, skb->data[0], 0);
> + smp_failure(conn, 0);
I think you meant "smp_failure(conn, skb->data[0]);" here.
> reason = 0;
> err = -EPERM;
> break;
Best Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
^ permalink raw reply
* [PATCH 6/6] android/hid: Handle virtual unplug notification in hid hal
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
---
android/hal-hidhost.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/android/hal-hidhost.c b/android/hal-hidhost.c
index b24e74e..74a7fe7 100644
--- a/android/hal-hidhost.c
+++ b/android/hal-hidhost.c
@@ -77,6 +77,15 @@ static void handle_get_report(void *buf)
ev->status, ev->data, ev->len);
}
+static void handle_virtual_unplug(void *buf)
+{
+ struct hal_ev_hid_virtual_unplug *ev = buf;
+
+ if (bt_hh_cbacks->virtual_unplug_cb)
+ bt_hh_cbacks->virtual_unplug_cb((bt_bdaddr_t *) ev->bdaddr,
+ ev->status);
+}
+
/* will be called from notification thread context */
void bt_notify_hh(uint16_t opcode, void *buf, uint16_t len)
{
@@ -96,6 +105,9 @@ void bt_notify_hh(uint16_t opcode, void *buf, uint16_t len)
case HAL_EV_HID_GET_REPORT:
handle_get_report(buf);
break;
+ case HAL_EV_HID_VIRTUAL_UNPLUG:
+ handle_virtual_unplug(buf);
+ break;
default:
DBG("Unhandled callback opcode=0x%x", opcode);
break;
--
1.8.1.2
^ permalink raw reply related
* [PATCH 5/6] android/hid: Add hid event virtual unplug structure to HAL msg headers
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
---
android/hal-msg.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/android/hal-msg.h b/android/hal-msg.h
index 59e4f78..740f2ab 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -477,6 +477,12 @@ struct hal_ev_hid_get_report {
uint8_t data[0];
} __attribute__((packed));
+#define HAL_EV_HID_VIRTUAL_UNPLUG 0x86
+struct hal_ev_hid_virtual_unplug {
+ uint8_t bdaddr[6];
+ uint8_t status;
+} __attribute__((packed));
+
#define HAL_EV_AV_CONNECTION_STATE 0x81
struct hal_ev_av_connection_state {
uint8_t state;
--
1.8.1.2
^ permalink raw reply related
* [PATCH 4/6] android/hid: Rename virtual unplug define and struct
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
Renaming virtual unplug define and strcut name from VP to more
meaning full.
---
android/hal-hidhost.c | 4 ++--
android/hal-msg.h | 4 ++--
android/hid.c | 5 +++--
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/android/hal-hidhost.c b/android/hal-hidhost.c
index 22a5d15..b24e74e 100644
--- a/android/hal-hidhost.c
+++ b/android/hal-hidhost.c
@@ -140,7 +140,7 @@ static bt_status_t hh_disconnect(bt_bdaddr_t *bd_addr)
static bt_status_t hh_virtual_unplug(bt_bdaddr_t *bd_addr)
{
- struct hal_cmd_hid_vp cmd;
+ struct hal_cmd_hid_virtual_unplug cmd;
DBG("");
@@ -152,7 +152,7 @@ static bt_status_t hh_virtual_unplug(bt_bdaddr_t *bd_addr)
memcpy(cmd.bdaddr, bd_addr, sizeof(cmd.bdaddr));
- return hal_ipc_cmd(HAL_SERVICE_ID_HIDHOST, HAL_OP_HID_VP,
+ return hal_ipc_cmd(HAL_SERVICE_ID_HIDHOST, HAL_OP_HID_VIRTUAL_UNPLUG,
sizeof(cmd), &cmd, 0, NULL, NULL);
}
diff --git a/android/hal-msg.h b/android/hal-msg.h
index eb145a5..59e4f78 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -242,8 +242,8 @@ struct hal_cmd_hid_disconnect {
uint8_t bdaddr[6];
} __attribute__((packed));
-#define HAL_OP_HID_VP 0x03
-struct hal_cmd_hid_vp {
+#define HAL_OP_HID_VIRTUAL_UNPLUG 0x03
+struct hal_cmd_hid_virtual_unplug {
uint8_t bdaddr[6];
} __attribute__((packed));
diff --git a/android/hid.c b/android/hid.c
index c38c4c1..77dc81d 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -740,7 +740,8 @@ static uint8_t bt_hid_disconnect(struct hal_cmd_hid_disconnect *cmd,
return HAL_STATUS_SUCCESS;
}
-static uint8_t bt_hid_virtual_unplug(struct hal_cmd_hid_vp *cmd, uint16_t len)
+static uint8_t bt_hid_virtual_unplug(struct hal_cmd_hid_virtual_unplug *cmd,
+ uint16_t len)
{
DBG("Not Implemented");
@@ -938,7 +939,7 @@ void bt_hid_handle_cmd(GIOChannel *io, uint8_t opcode, void *buf, uint16_t len)
case HAL_OP_HID_DISCONNECT:
status = bt_hid_disconnect(buf, len);
break;
- case HAL_OP_HID_VP:
+ case HAL_OP_HID_VIRTUAL_UNPLUG:
status = bt_hid_virtual_unplug(buf, len);
break;
case HAL_OP_HID_SET_INFO:
--
1.8.1.2
^ permalink raw reply related
* [PATCH 3/6] android/hid: Fill send data structure variables in hal-hidhost
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
---
android/hal-hidhost.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/android/hal-hidhost.c b/android/hal-hidhost.c
index f1a2223..22a5d15 100644
--- a/android/hal-hidhost.c
+++ b/android/hal-hidhost.c
@@ -330,6 +330,8 @@ static bt_status_t hh_send_data(bt_bdaddr_t *bd_addr, char *data)
return BT_STATUS_PARM_INVALID;
memcpy(cmd.bdaddr, bd_addr, sizeof(cmd.bdaddr));
+ cmd.len = strlen(data);
+ memcpy(cmd.data, data, cmd.len);
return hal_ipc_cmd(HAL_SERVICE_ID_HIDHOST, HAL_OP_HID_SEND_DATA,
sizeof(cmd), &cmd, 0, NULL, NULL);
--
1.8.1.2
^ permalink raw reply related
* [PATCH 2/6] android/hid: Add missing parameters in send data struct in HAL headers
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
---
android/hal-msg.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/android/hal-msg.h b/android/hal-msg.h
index f0cc800..eb145a5 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -298,7 +298,9 @@ struct hal_cmd_hid_set_report {
#define HAL_OP_HID_SEND_DATA 0x09
struct hal_cmd_hid_send_data {
- uint8_t bdaddr[6];
+ uint8_t bdaddr[6];
+ uint16_t len;
+ uint8_t data[670];
} __attribute__((packed));
#define HAL_OP_AV_CONNECT 0x01
--
1.8.1.2
^ permalink raw reply related
* [PATCH 1/6] android/hid: Add missing hid send data parameters in ipc document
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
In-Reply-To: <1383738528-14550-1-git-send-email-ravikumar.veeramally@linux.intel.com>
---
android/hal-ipc-api.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/android/hal-ipc-api.txt b/android/hal-ipc-api.txt
index c39cb0d..da4eaaa 100644
--- a/android/hal-ipc-api.txt
+++ b/android/hal-ipc-api.txt
@@ -566,7 +566,9 @@ Commands and responses:
Opcode 0x09 - Send Data command/response
Command parameters: Remote address (6 octets)
- ...
+ Report length (2 octets)
+ Report data (670 octets)
+
Response parameters: <none>
In case of an error, the error response will be returned.
--
1.8.1.2
^ permalink raw reply related
* [PATCH 0/6] Add missing hid ipc doc and hal headers
From: Ravi kumar Veeramally @ 2013-11-06 11:48 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Ravi kumar Veeramally
This patch adds missing hid ipc documentation, hal headers,
renaming and virtual unplug notification in hid HAL.
Unsupported methods are virtual unplug and send data in daemon.
Ravi kumar Veeramally (6):
android/hid: Add missing hid send data parameters in ipc document
android/hid: Add missing parameters in send data struct in HAL headers
android/hid: Fill send data structure variables in hal-hidhost
android/hid: Rename virtual unplug define and struct
android/hid: Add hid event virtual unplug structure to HAL msg headers
android/hid: Handle virtual unplug notification in hid hal
android/hal-hidhost.c | 18 ++++++++++++++++--
android/hal-ipc-api.txt | 4 +++-
android/hal-msg.h | 14 +++++++++++---
android/hid.c | 5 +++--
4 files changed, 33 insertions(+), 8 deletions(-)
--
1.8.1.2
^ permalink raw reply
* Re: [PATCHv3] android: Implement class of device property callback
From: Johan Hedberg @ 2013-11-06 11:32 UTC (permalink / raw)
To: Marcin Kraglak; +Cc: linux-bluetooth
In-Reply-To: <1383735562-21777-1-git-send-email-marcin.kraglak@tieto.com>
Hi Marcin,
On Wed, Nov 06, 2013, Marcin Kraglak wrote:
> This will send adapter property with class of device
> to notification socket.
> ---
> android/adapter.c | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCHv2 4/6] android: Add supported uuids when adapter is initialized
From: Marcin Kraglak @ 2013-11-06 11:08 UTC (permalink / raw)
To: Marcel Holtmann
Cc: Johan Hedberg, linux-bluetooth@vger.kernel.org development
In-Reply-To: <FC8AC89E-747D-4005-9816-9A00734DC2B0@holtmann.org>
Hi Johan, Marcel
On 6 November 2013 09:41, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Johan,
>
>>> It will set class of device with proper service hints.
>>> We set it statically because we want to keep code simple.
>>>
>>> ---
>>> android/adapter.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 59 insertions(+)
>>
>> I've applied patches 1-3, but am a bit confused about this one.
>>
>>> diff --git a/android/adapter.c b/android/adapter.c
>>> index 0f24cac..70b9265 100644
>>> --- a/android/adapter.c
>>> +++ b/android/adapter.c
>>> @@ -52,6 +52,29 @@ static GIOChannel *notification_io = NULL;
>>> /* This list contains addresses which are asked for records */
>>> static GSList *browse_reqs;
>>>
>>> +/*
>>> + * This is an array of supported uuids and service hints. We add them via mgmt
>>> + * interface when adapter is initialized. Uuids are in reverse orded.
>>> + */
>>> +static const struct mgmt_cp_add_uuid supported_services[] = {
>>> + /* OBEX_OPP_UUID */
>>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>>> + 0x00, 0x10, 0x00, 0x00, 0x05, 0x11, 0x00, 0x00 },
>>> + .svc_hint = 0x10 },
>>> + /* HFP_AG_UUID */
>>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>>> + 0x00, 0x10, 0x00, 0x00, 0x1f, 0x11, 0x00, 0x00 },
>>> + .svc_hint = 0x40 },
>>> + /* ADVANCED_AUDIO_UUID */
>>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>>> + 0x00, 0x10, 0x00, 0x00, 0x0d, 0x11, 0x00, 0x00 },
>>> + .svc_hint = 0x08 },
>>> + /* PANU_UUID */
>>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>>> + 0x00, 0x10, 0x00, 0x00, 0x15, 0x11, 0x00, 0x00 },
>>> + .svc_hint = 0x02 }
>>> +};
>>
>> I seem to remember the discussion around this drifting back to doing the
>> registration dynamically. Do I remember wrong? Wasn't it so that at
>> least some UUIDs (such as PAN) with a bluedroid based system only appear
>> when you actually enable support for the profile in the UI?
>
> looking at a Nexus 4, the SDP database seems static. The PAN record is always present.
>
> I think dynamic is on the level do we compile in support for the PAN HAL module or not. So the record and UUID list should come from the PAN module. So it is kinda dynamic in that sense, but ultimately static.
>
> Regards
>
> Marcel
>
Could it look like this:
we will hold that static array off uuids and svc hints and additional
profile_id.
Each profile will call generic method like
adapter_register_profile(profile_id) (just example), and it will add
sdp record to sdp server & uuid to mgmt interface. Profiles
implemented out of stack (I mean opp, pbab etc) will have static sdp
record and uuid which will be added once adapter is initialized. What
is your opinion?
Regards
Marcin
^ permalink raw reply
* [PATCHv3] android: Implement class of device property callback
From: Marcin Kraglak @ 2013-11-06 10:59 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Marcin Kraglak
This will send adapter property with class of device
to notification socket.
---
android/adapter.c | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/android/adapter.c b/android/adapter.c
index 0f24cac..cf5edcd 100644
--- a/android/adapter.c
+++ b/android/adapter.c
@@ -189,6 +189,28 @@ static void scan_mode_changed(void)
g_free(ev);
}
+static void adapter_class_changed(void)
+{
+ struct hal_ev_adapter_props_changed *ev;
+ int len;
+
+ len = sizeof(*ev) + sizeof(struct hal_property) + sizeof(uint32_t);
+
+ ev = g_malloc(len);
+
+ ev->num_props = 1;
+ ev->status = HAL_STATUS_SUCCESS;
+
+ ev->props[0].type = HAL_PROP_ADAPTER_CLASS;
+ ev->props[0].len = sizeof(uint32_t);
+ memcpy(ev->props->val, &adapter->dev_class, sizeof(uint32_t));
+
+ ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH,
+ HAL_EV_ADAPTER_PROPS_CHANGED, len, ev, -1);
+
+ g_free(ev);
+}
+
static void settings_changed(uint32_t settings)
{
uint32_t changed_mask;
@@ -257,7 +279,7 @@ static void mgmt_dev_class_changed_event(uint16_t index, uint16_t length,
adapter->dev_class = dev_class;
- /* TODO: Inform prop change: Class */
+ adapter_class_changed();
/* TODO: Gatt attrib set*/
}
@@ -1219,11 +1241,11 @@ static bool get_uuids(void)
static bool get_class(void)
{
- DBG("Not implemented");
+ DBG("");
- /* TODO: Add implementation */
+ adapter_class_changed();
- return false;
+ return true;
}
static bool get_type(void)
--
1.8.4.1
^ permalink raw reply related
* [PATCH] Bluetooth: Remove unnecessary 'send' parameter from smp_failure()
From: johan.hedberg @ 2013-11-06 9:24 UTC (permalink / raw)
To: linux-bluetooth
From: Johan Hedberg <johan.hedberg@intel.com>
The send parameter has only been used for determining whether to send a
Pairing Failed PDU or not. However, the function can equally well use
the already existing reason parameter to make this choice and send the
PDU whenever a non-zero value was passed.
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
---
net/bluetooth/smp.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index 4b07acb8293c..f99352d1aa43 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -257,11 +257,11 @@ static u8 check_enc_key_size(struct l2cap_conn *conn, __u8 max_key_size)
return 0;
}
-static void smp_failure(struct l2cap_conn *conn, u8 reason, u8 send)
+static void smp_failure(struct l2cap_conn *conn, u8 reason)
{
struct hci_conn *hcon = conn->hcon;
- if (send)
+ if (reason)
smp_send_cmd(conn, SMP_CMD_PAIRING_FAIL, sizeof(reason),
&reason);
@@ -406,7 +406,7 @@ static void confirm_work(struct work_struct *work)
return;
error:
- smp_failure(conn, reason, 1);
+ smp_failure(conn, reason);
}
static void random_work(struct work_struct *work)
@@ -490,7 +490,7 @@ static void random_work(struct work_struct *work)
return;
error:
- smp_failure(conn, reason, 1);
+ smp_failure(conn, reason);
}
static struct smp_chan *smp_chan_create(struct l2cap_conn *conn)
@@ -555,10 +555,10 @@ int smp_user_confirm_reply(struct hci_conn *hcon, u16 mgmt_op, __le32 passkey)
break;
case MGMT_OP_USER_PASSKEY_NEG_REPLY:
case MGMT_OP_USER_CONFIRM_NEG_REPLY:
- smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED, 1);
+ smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
return 0;
default:
- smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED, 1);
+ smp_failure(conn, SMP_PASSKEY_ENTRY_FAILED);
return -EOPNOTSUPP;
}
@@ -895,7 +895,7 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
break;
case SMP_CMD_PAIRING_FAIL:
- smp_failure(conn, skb->data[0], 0);
+ smp_failure(conn, 0);
reason = 0;
err = -EPERM;
break;
@@ -941,7 +941,7 @@ int smp_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb)
done:
if (reason)
- smp_failure(conn, reason, 1);
+ smp_failure(conn, reason);
kfree_skb(skb);
return err;
--
1.8.3.1
^ permalink raw reply related
* Re: [PATCH 1/2] android/debug: Export print uuid function
From: Marcel Holtmann @ 2013-11-06 8:42 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth@vger.kernel.org development
In-Reply-To: <20131106083144.GD18874@aemeltch-MOBL1>
Hi Andrei,
>>> The function will be reused in socket HAL.
>>> ---
>>> android/client/textconv.c | 2 +-
>>> android/client/textconv.h | 1 +
>>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/android/client/textconv.c b/android/client/textconv.c
>>> index 9a2f7e6..e6f327f 100644
>>> --- a/android/client/textconv.c
>>> +++ b/android/client/textconv.c
>>> @@ -237,7 +237,7 @@ char *bdaddr2str(const bt_bdaddr_t *bd_addr)
>>> return bt_bdaddr_t2str(bd_addr, bdaddr_tls_buffer);
>>> }
>>>
>>> -static char *btuuid2str(const bt_uuid_t *uuid)
>>> +char *btuuid2str(const bt_uuid_t *uuid)
>>> {
>>> static char buf[MAX_UUID_STR_LEN];
>>>
>>> diff --git a/android/client/textconv.h b/android/client/textconv.h
>>> index 1c848ef..7520b04 100644
>>> --- a/android/client/textconv.h
>>> +++ b/android/client/textconv.h
>>> @@ -109,6 +109,7 @@ void str2bt_uuid_t(const char *str, bt_uuid_t *uuid);
>>>
>>> char *btproperty2str(const bt_property_t *property);
>>> char *bdaddr2str(const bt_bdaddr_t *bd_addr);
>>> +char *btuuid2str(const bt_uuid_t *uuid);
>>
>> this is totally backwards then. The HAL should not depend on client code.
>>
>
> So shall the function be moved to utils.c inside android or even better
> src/shared?
keep it inside android/ directory.
Regards
Marcel
^ permalink raw reply
* Re: [PATCHv2 4/6] android: Add supported uuids when adapter is initialized
From: Marcel Holtmann @ 2013-11-06 8:41 UTC (permalink / raw)
To: Johan Hedberg; +Cc: Marcin Kraglak, linux-bluetooth@vger.kernel.org development
In-Reply-To: <20131106080254.GA15573@x220.p-661hnu-f1>
Hi Johan,
>> It will set class of device with proper service hints.
>> We set it statically because we want to keep code simple.
>>
>> ---
>> android/adapter.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 59 insertions(+)
>
> I've applied patches 1-3, but am a bit confused about this one.
>
>> diff --git a/android/adapter.c b/android/adapter.c
>> index 0f24cac..70b9265 100644
>> --- a/android/adapter.c
>> +++ b/android/adapter.c
>> @@ -52,6 +52,29 @@ static GIOChannel *notification_io = NULL;
>> /* This list contains addresses which are asked for records */
>> static GSList *browse_reqs;
>>
>> +/*
>> + * This is an array of supported uuids and service hints. We add them via mgmt
>> + * interface when adapter is initialized. Uuids are in reverse orded.
>> + */
>> +static const struct mgmt_cp_add_uuid supported_services[] = {
>> + /* OBEX_OPP_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x05, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x10 },
>> + /* HFP_AG_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x1f, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x40 },
>> + /* ADVANCED_AUDIO_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x0d, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x08 },
>> + /* PANU_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x15, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x02 }
>> +};
>
> I seem to remember the discussion around this drifting back to doing the
> registration dynamically. Do I remember wrong? Wasn't it so that at
> least some UUIDs (such as PAN) with a bluedroid based system only appear
> when you actually enable support for the profile in the UI?
looking at a Nexus 4, the SDP database seems static. The PAN record is always present.
I think dynamic is on the level do we compile in support for the PAN HAL module or not. So the record and UUID list should come from the PAN module. So it is kinda dynamic in that sense, but ultimately static.
Regards
Marcel
^ permalink raw reply
* Re: [PATCH_v4 00/12] Implemented hid interfaces in daemon and HAL
From: Johan Hedberg @ 2013-11-06 8:37 UTC (permalink / raw)
To: Ravi kumar Veeramally; +Cc: linux-bluetooth
In-Reply-To: <1383685758-3900-1-git-send-email-ravikumar.veeramally@linux.intel.com>
Hi Ravi,
On Tue, Nov 05, 2013, Ravi kumar Veeramally wrote:
> v4: Fixed Johan's comments (length issue and single byte array)
>
> v3: Wrong order of patches
>
> v2: Fixed Johan's comments (splitting of patches, proper function and
> struct names, update hal-msg.h and ipc document, alignment issues
> removed pointer from ipc struct)
>
> v1: This patch set implements get/set protocol and get/set report
> interfaces and supported functionality in daemon. Sending notifications
> and notification handling in hal. Few naming fixes and error handling.
> And last handling of few uHID events.
>
> Ravi kumar Veeramally (12):
> android/hid: Implement hid get protocol in daemon
> android/hid: Implement hid set protocol in daemon
> android/hid: Handle protocol mode notification in HAL
> android/hid: Add hid event get report structure to HAL msg headers
> android/hid: Implement hid get report in daemon
> android/hid: Add missing set report parameters to ipc document
> android/hid: Implement hid set report in daemon
> android/hid: Handle get report notification in HAL
> android/hid: Replace header checking magic number with defines
> android/hid: Handle invalid parameters in HAL
> android/hid: Handle uhid events
> android/hid: Align hal hid struct variables properly
>
> android/hal-hidhost.c | 41 +++++-
> android/hal-ipc-api.txt | 4 +-
> android/hal-msg.h | 32 +++--
> android/hid.c | 325 ++++++++++++++++++++++++++++++++++++++++++++++--
> 4 files changed, 372 insertions(+), 30 deletions(-)
I've applied all patches, but I also did some minor cleanups while
applying (e.g. to the documentation patch) and some bigger ones as
separate patches on top of this set.
Johan
^ permalink raw reply
* Re: [PATCH 1/2] android/debug: Export print uuid function
From: Andrei Emeltchenko @ 2013-11-06 8:32 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: linux-bluetooth@vger.kernel.org development
In-Reply-To: <C04753B6-1BA7-459F-830F-981D46C10AF3@holtmann.org>
Hi Marcel,
On Tue, Nov 05, 2013 at 05:56:08PM +0100, Marcel Holtmann wrote:
> Hi Andrei,
>
> > The function will be reused in socket HAL.
> > ---
> > android/client/textconv.c | 2 +-
> > android/client/textconv.h | 1 +
> > 2 files changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/android/client/textconv.c b/android/client/textconv.c
> > index 9a2f7e6..e6f327f 100644
> > --- a/android/client/textconv.c
> > +++ b/android/client/textconv.c
> > @@ -237,7 +237,7 @@ char *bdaddr2str(const bt_bdaddr_t *bd_addr)
> > return bt_bdaddr_t2str(bd_addr, bdaddr_tls_buffer);
> > }
> >
> > -static char *btuuid2str(const bt_uuid_t *uuid)
> > +char *btuuid2str(const bt_uuid_t *uuid)
> > {
> > static char buf[MAX_UUID_STR_LEN];
> >
> > diff --git a/android/client/textconv.h b/android/client/textconv.h
> > index 1c848ef..7520b04 100644
> > --- a/android/client/textconv.h
> > +++ b/android/client/textconv.h
> > @@ -109,6 +109,7 @@ void str2bt_uuid_t(const char *str, bt_uuid_t *uuid);
> >
> > char *btproperty2str(const bt_property_t *property);
> > char *bdaddr2str(const bt_bdaddr_t *bd_addr);
> > +char *btuuid2str(const bt_uuid_t *uuid);
>
> this is totally backwards then. The HAL should not depend on client code.
>
So shall the function be moved to utils.c inside android or even better
src/shared?
Best regards
Andrei Emeltchenko
^ permalink raw reply
* Re: [PATCHv2 4/6] android: Add supported uuids when adapter is initialized
From: Marcin Kraglak @ 2013-11-06 8:27 UTC (permalink / raw)
To: Marcin Kraglak, linux-bluetooth
In-Reply-To: <20131106080254.GA15573@x220.p-661hnu-f1>
As I remember we agreed to have dynamic sdp records and static list of
uuids (to have correct service hint in class of device). Bluedroid
sets service hint once, and send new adapter uuids when specific
services starts (for example when you init hidhost,
adapter_property_callback will return with new uuid). But it doesn't
matter if you add them at start of bluetooth interface or specific
profile init - it happens at the same time. I've also checked if uuids
are removed when profiles are cleaned - and bluedroid doesn't remove
uuids which were added at start.
On 6 November 2013 09:02, Johan Hedberg <johan.hedberg@gmail.com> wrote:
> Hi Marcin,
>
> On Tue, Nov 05, 2013, Marcin Kraglak wrote:
>> It will set class of device with proper service hints.
>> We set it statically because we want to keep code simple.
>>
>> ---
>> android/adapter.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 59 insertions(+)
>
> I've applied patches 1-3, but am a bit confused about this one.
>
>> diff --git a/android/adapter.c b/android/adapter.c
>> index 0f24cac..70b9265 100644
>> --- a/android/adapter.c
>> +++ b/android/adapter.c
>> @@ -52,6 +52,29 @@ static GIOChannel *notification_io = NULL;
>> /* This list contains addresses which are asked for records */
>> static GSList *browse_reqs;
>>
>> +/*
>> + * This is an array of supported uuids and service hints. We add them via mgmt
>> + * interface when adapter is initialized. Uuids are in reverse orded.
>> + */
>> +static const struct mgmt_cp_add_uuid supported_services[] = {
>> + /* OBEX_OPP_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x05, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x10 },
>> + /* HFP_AG_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x1f, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x40 },
>> + /* ADVANCED_AUDIO_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x0d, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x08 },
>> + /* PANU_UUID */
>> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
>> + 0x00, 0x10, 0x00, 0x00, 0x15, 0x11, 0x00, 0x00 },
>> + .svc_hint = 0x02 }
>> +};
>
> I seem to remember the discussion around this drifting back to doing the
> registration dynamically. Do I remember wrong? Wasn't it so that at
> least some UUIDs (such as PAN) with a bluedroid based system only appear
> when you actually enable support for the profile in the UI?
>
> Johan
^ permalink raw reply
* Re: bluez-5.10/monitor/packet.c:4335: possible missing break ?
From: Johan Hedberg @ 2013-11-06 8:15 UTC (permalink / raw)
To: David Binderman; +Cc: linux-bluetooth@vger.kernel.org
In-Reply-To: <DUB118-W372AC521B8229C59C076809CF10@phx.gbl>
Hi David,
On Tue, Nov 05, 2013, David Binderman wrote:
> Hello there,
>
> I just ran the static analysis checker "cppcheck" over the source code of bluez-5.10
>
> It said
>
> [monitor/packet.c:4335] -> [monitor/packet.c:4338]: (warning) Variable 'str' is reassigned a value
> before the old one has been used. 'break;' missing?
>
> Source code is
>
> case 0x03:
> str = "Allow Scan Request from White List Only, "
> "Allow Connect Request from White List Only";
> default:
> str = "Reserved";
> break;
>
> Suggest add a break statement to the 0x03 case.
Yes, that looks like a bug. Do you want to send a proper patch for it?
Johan
^ permalink raw reply
* Re: [PATCH] android: Add option to specify controller index to use
From: Johan Hedberg @ 2013-11-06 8:14 UTC (permalink / raw)
To: Szymon Janc; +Cc: linux-bluetooth
In-Reply-To: <1383667658-31480-1-git-send-email-szymon.janc@tieto.com>
Hi Szymon,
On Tue, Nov 05, 2013, Szymon Janc wrote:
> This will be usefull while testing on Linux where more controllers
> can be present.
> ---
>
> This is on top of patchset starting with patch
> "adapter: Move MGMT_VERSION macro to mgmt.h"
>
> android/main.c | 39 +++++++++++++++++++++++++++++----------
> 1 file changed, 29 insertions(+), 10 deletions(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH v2 1/5] adapter: Move MGMT_VERSION macro to mgmt.h
From: Johan Hedberg @ 2013-11-06 8:13 UTC (permalink / raw)
To: Szymon Janc; +Cc: linux-bluetooth, Szymon Janc
In-Reply-To: <1383675779-4757-1-git-send-email-szymon.janc@tieto.com>
Hi Szymon,
On Tue, Nov 05, 2013, Szymon Janc wrote:
> This will be also used in Android daemon.
> ---
>
> v2: fixed missing brackets around 'v' as suggested by Marcel
>
> src/adapter.c | 1 -
> src/shared/mgmt.h | 2 ++
> 2 files changed, 2 insertions(+), 1 deletion(-)
All five patches have been applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH] monitor: Fallback to 80 columns terminal if not able to get real size
From: Johan Hedberg @ 2013-11-06 8:03 UTC (permalink / raw)
To: Szymon Janc; +Cc: linux-bluetooth
In-Reply-To: <1383657773-13597-1-git-send-email-szymon.janc@tieto.com>
Hi Szymon,
On Tue, Nov 05, 2013, Szymon Janc wrote:
> This makes num_columns always return valid number of columns, which is
> expected by print_packets function.
>
> This also fix garbage prints while using btmon via adb shell.
> ---
> monitor/display.c | 8 ++++----
> monitor/display.h | 2 ++
> 2 files changed, 6 insertions(+), 4 deletions(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCHv2 4/6] android: Add supported uuids when adapter is initialized
From: Johan Hedberg @ 2013-11-06 8:02 UTC (permalink / raw)
To: Marcin Kraglak; +Cc: linux-bluetooth
In-Reply-To: <1383657700-22313-5-git-send-email-marcin.kraglak@tieto.com>
Hi Marcin,
On Tue, Nov 05, 2013, Marcin Kraglak wrote:
> It will set class of device with proper service hints.
> We set it statically because we want to keep code simple.
>
> ---
> android/adapter.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 59 insertions(+)
I've applied patches 1-3, but am a bit confused about this one.
> diff --git a/android/adapter.c b/android/adapter.c
> index 0f24cac..70b9265 100644
> --- a/android/adapter.c
> +++ b/android/adapter.c
> @@ -52,6 +52,29 @@ static GIOChannel *notification_io = NULL;
> /* This list contains addresses which are asked for records */
> static GSList *browse_reqs;
>
> +/*
> + * This is an array of supported uuids and service hints. We add them via mgmt
> + * interface when adapter is initialized. Uuids are in reverse orded.
> + */
> +static const struct mgmt_cp_add_uuid supported_services[] = {
> + /* OBEX_OPP_UUID */
> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
> + 0x00, 0x10, 0x00, 0x00, 0x05, 0x11, 0x00, 0x00 },
> + .svc_hint = 0x10 },
> + /* HFP_AG_UUID */
> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
> + 0x00, 0x10, 0x00, 0x00, 0x1f, 0x11, 0x00, 0x00 },
> + .svc_hint = 0x40 },
> + /* ADVANCED_AUDIO_UUID */
> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
> + 0x00, 0x10, 0x00, 0x00, 0x0d, 0x11, 0x00, 0x00 },
> + .svc_hint = 0x08 },
> + /* PANU_UUID */
> + { .uuid = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80,
> + 0x00, 0x10, 0x00, 0x00, 0x15, 0x11, 0x00, 0x00 },
> + .svc_hint = 0x02 }
> +};
I seem to remember the discussion around this drifting back to doing the
registration dynamically. Do I remember wrong? Wasn't it so that at
least some UUIDs (such as PAN) with a bluedroid based system only appear
when you actually enable support for the profile in the UI?
Johan
^ permalink raw reply
* Re: [PATCH] net: bluetooth: fix crash in l2cap_chan_send after l2cap_chan_del
From: Johan Hedberg @ 2013-11-06 7:43 UTC (permalink / raw)
To: Seung-Woo Kim; +Cc: linux-bluetooth, marcel, gustavo, s.syam
In-Reply-To: <1383644793-30553-1-git-send-email-sw0312.kim@samsung.com>
Hi Seung-Woo Kim,
On Tue, Nov 05, 2013, Seung-Woo Kim wrote:
> Removing a bond and disconnecting from a specific remote device
> can cause l2cap_chan_send() is called after l2cap_chan_del() is
> called. This causes following crash.
>
> [ 1384.972086] Unable to handle kernel NULL pointer dereference at virtual address 00000008
> [ 1384.972090] pgd = c0004000
> [ 1384.972125] [00000008] *pgd=00000000
> [ 1384.972137] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
> [ 1384.972144] Modules linked in:
> [ 1384.972156] CPU: 0 PID: 841 Comm: krfcommd Not tainted 3.10.14-gdf22a71-dirty #435
> [ 1384.972162] task: df29a100 ti: df178000 task.ti: df178000
> [ 1384.972182] PC is at l2cap_create_basic_pdu+0x30/0x1ac
> [ 1384.972191] LR is at l2cap_chan_send+0x100/0x1d4
> [ 1384.972198] pc : [<c051d250>] lr : [<c0521c78>] psr: 40000113
> [ 1384.972198] sp : df179d40 ip : c083a010 fp : 00000008
> [ 1384.972202] r10: 00000004 r9 : 0000065a r8 : 000003f5
> [ 1384.972206] r7 : 00000000 r6 : 00000000 r5 : df179e84 r4 : da557000
> [ 1384.972210] r3 : 00000000 r2 : 00000004 r1 : df179e84 r0 : 00000000
> [ 1384.972215] Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
> [ 1384.972220] Control: 10c53c7d Table: 5c8b004a DAC: 00000015
> [ 1384.972224] Process krfcommd (pid: 841, stack limit = 0xdf178238)
> [ 1384.972229] Stack: (0xdf179d40 to 0xdf17a000)
> [ 1384.972238] 9d40: 00000000 da557000 00000004 df179e84 00000004 000003f5 0000065a 00000000
> [ 1384.972245] 9d60: 00000008 c0521c78 df179e84 da557000 00000004 da557204 de0c6800 df179e84
> [ 1384.972253] 9d80: da557000 00000004 da557204 c0526b7c 00000004 df724000 df179e84 00000004
> [ 1384.972260] 9da0: df179db0 df29a100 c083bc48 c045481c 00000001 00000000 00000000 00000000
> [ 1384.972267] 9dc0: 00000000 df29a100 00000000 00000000 00000000 00000000 df179e10 00000000
> [ 1384.972274] 9de0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 1384.972281] 9e00: 00000000 00000000 00000000 00000000 df179e4c c000ec80 c0b538c0 00000004
> [ 1384.972288] 9e20: df724000 df178000 00000000 df179e84 c0b538c0 00000000 df178000 c07f4570
> [ 1384.972295] 9e40: dcad9c00 df179e74 c07f4394 df179e60 df178000 00000000 df179e84 de247010
> [ 1384.972303] 9e60: 00000043 c0454dec 00000001 00000004 df315c00 c0530598 00000004 df315c0c
> [ 1384.972310] 9e80: ffffc32c 00000000 00000000 df179ea0 00000001 00000000 00000000 00000000
> [ 1384.972317] 9ea0: df179ebc 00000004 df315c00 c05df838 00000000 c0530810 c07d08c0 d7017303
> [ 1384.972325] 9ec0: 6ec245b9 00000000 df315c00 c0531b04 c07f3fe0 c07f4018 da67a300 df315c00
> [ 1384.972332] 9ee0: 00000000 c05334e0 df315c00 df315b80 df315c00 de0c6800 da67a300 00000000
> [ 1384.972339] 9f00: de0c684c c0533674 df204100 df315c00 df315c00 df204100 df315c00 c082b138
> [ 1384.972347] 9f20: c053385c c0533754 a0000113 df178000 00000001 c083bc48 00000000 c053385c
> [ 1384.972354] 9f40: 00000000 00000000 00000000 c05338c4 00000000 df9f0000 df9f5ee4 df179f6c
> [ 1384.972360] 9f60: df178000 c0049db4 00000000 00000000 c07f3ff8 00000000 00000000 00000000
> [ 1384.972368] 9f80: df179f80 df179f80 00000000 00000000 df179f90 df179f90 df9f5ee4 c0049cfc
> [ 1384.972374] 9fa0: 00000000 00000000 00000000 c000f168 00000000 00000000 00000000 00000000
> [ 1384.972381] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 1384.972388] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00010000 00000600
> [ 1384.972411] [<c051d250>] (l2cap_create_basic_pdu+0x30/0x1ac) from [<c0521c78>] (l2cap_chan_send+0x100/0x1d4)
> [ 1384.972425] [<c0521c78>] (l2cap_chan_send+0x100/0x1d4) from [<c0526b7c>] (l2cap_sock_sendmsg+0xa8/0x104)
> [ 1384.972440] [<c0526b7c>] (l2cap_sock_sendmsg+0xa8/0x104) from [<c045481c>] (sock_sendmsg+0xac/0xcc)
> [ 1384.972453] [<c045481c>] (sock_sendmsg+0xac/0xcc) from [<c0454dec>] (kernel_sendmsg+0x2c/0x34)
> [ 1384.972469] [<c0454dec>] (kernel_sendmsg+0x2c/0x34) from [<c0530598>] (rfcomm_send_frame+0x58/0x7c)
> [ 1384.972481] [<c0530598>] (rfcomm_send_frame+0x58/0x7c) from [<c0530810>] (rfcomm_send_ua+0x98/0xbc)
> [ 1384.972494] [<c0530810>] (rfcomm_send_ua+0x98/0xbc) from [<c0531b04>] (rfcomm_recv_disc+0xac/0x100)
> [ 1384.972506] [<c0531b04>] (rfcomm_recv_disc+0xac/0x100) from [<c05334e0>] (rfcomm_recv_frame+0x144/0x264)
> [ 1384.972519] [<c05334e0>] (rfcomm_recv_frame+0x144/0x264) from [<c0533674>] (rfcomm_process_rx+0x74/0xfc)
> [ 1384.972531] [<c0533674>] (rfcomm_process_rx+0x74/0xfc) from [<c0533754>] (rfcomm_process_sessions+0x58/0x160)
> [ 1384.972543] [<c0533754>] (rfcomm_process_sessions+0x58/0x160) from [<c05338c4>] (rfcomm_run+0x68/0x110)
> [ 1384.972558] [<c05338c4>] (rfcomm_run+0x68/0x110) from [<c0049db4>] (kthread+0xb8/0xbc)
> [ 1384.972576] [<c0049db4>] (kthread+0xb8/0xbc) from [<c000f168>] (ret_from_fork+0x14/0x2c)
> [ 1384.972586] Code: e3100004 e1a07003 e5946000 1a000057 (e5969008)
> [ 1384.972614] ---[ end trace 6170b7ce00144e8c ]---
>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
> ---
> I can reproduce this crash with bluetooth-next kernel merged onto my v3.10
> system. It is usually happens when the device is at sleep state and remote
> device disconnects and removes bonding.
>
> This patch is based on bluetooth-next tree.
> ---
> net/bluetooth/l2cap_core.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
The patch has been applied to bluetooth-next. Thanks.
I also fixed up the subject a bit to be consistent with the rest of the
commits for the Bluetooth subsystem.
Johan
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox