All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call
@ 2013-11-19 12:21 Ravi kumar Veeramally
  2013-11-19 12:21 ` [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles Ravi kumar Veeramally
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-19 12:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

---
 android/pan.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/android/pan.c b/android/pan.c
index 2a11f46..fba86b8 100644
--- a/android/pan.c
+++ b/android/pan.c
@@ -58,7 +58,8 @@ static uint8_t bt_pan_connect(struct hal_cmd_pan_connect *cmd, uint16_t len)
 	return HAL_STATUS_FAILED;
 }
 
-static uint8_t bt_pan_disconnect(struct hal_cmd_pan_connect *cmd, uint16_t len)
+static uint8_t bt_pan_disconnect(struct hal_cmd_pan_disconnect *cmd,
+								uint16_t len)
 {
 	DBG("Not Implemented");
 
-- 
1.8.3.2


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

* [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles
  2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
@ 2013-11-19 12:21 ` Ravi kumar Veeramally
  2013-11-19 13:27   ` Johan Hedberg
  2013-11-19 12:21 ` [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly Ravi kumar Veeramally
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-19 12:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

---
 android/hal-pan.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/android/hal-pan.c b/android/hal-pan.c
index 2bc560e..30facd4 100644
--- a/android/hal-pan.c
+++ b/android/hal-pan.c
@@ -77,6 +77,9 @@ static bt_status_t pan_enable(int local_role)
 	if (!interface_ready())
 		return BT_STATUS_NOT_READY;
 
+	if (!(local_role == BTPAN_ROLE_PANU || local_role == BTPAN_ROLE_PANNAP))
+		return BT_STATUS_UNSUPPORTED;
+
 	cmd.local_role = local_role;
 
 	return hal_ipc_cmd(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE,
@@ -112,6 +115,14 @@ static bt_status_t pan_connect(const bt_bdaddr_t *bd_addr, int local_role,
 	if (!interface_ready())
 		return BT_STATUS_NOT_READY;
 
+	if (!((local_role == BTPAN_ROLE_PANNAP &&
+			remote_role == BTPAN_ROLE_PANU) ||
+		(local_role == BTPAN_ROLE_PANU &&
+			remote_role == BTPAN_ROLE_PANNAP) ||
+		(local_role == BTPAN_ROLE_PANU &&
+			remote_role == BTPAN_ROLE_PANU)))
+		return BT_STATUS_UNSUPPORTED;
+
 	memcpy(cmd.bdaddr, bd_addr, sizeof(cmd.bdaddr));
 	cmd.local_role = local_role;
 	cmd.remote_role = remote_role;
-- 
1.8.3.2


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

* [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly
  2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
  2013-11-19 12:21 ` [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles Ravi kumar Veeramally
@ 2013-11-19 12:21 ` Ravi kumar Veeramally
  2013-11-19 13:30   ` Johan Hedberg
  2013-11-19 12:21 ` [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb Ravi kumar Veeramally
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-19 12:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

This can be tested with haltest.
---
 android/a2dp.c      | 6 ++++++
 android/bluetooth.c | 6 ++++++
 android/hidhost.c   | 6 ++++++
 android/pan.c       | 6 ++++++
 4 files changed, 24 insertions(+)

diff --git a/android/a2dp.c b/android/a2dp.c
index 74d0082..28a1250 100644
--- a/android/a2dp.c
+++ b/android/a2dp.c
@@ -332,6 +332,9 @@ bool bt_a2dp_register(int sk, const bdaddr_t *addr)
 
 	DBG("");
 
+	if (notification_sk > 0)
+		return false;
+
 	bacpy(&adapter_addr, addr);
 
 	server = bt_io_listen(connect_cb, NULL, NULL, NULL, &err,
@@ -365,6 +368,9 @@ void bt_a2dp_unregister(void)
 {
 	DBG("");
 
+	if (notification_sk < 0)
+		return;
+
 	notification_sk = -1;
 
 	bt_adapter_remove_record(record_id);
diff --git a/android/bluetooth.c b/android/bluetooth.c
index 7dc2ec3..7805d42 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
@@ -2275,6 +2275,9 @@ bool bt_bluetooth_register(int sk)
 {
 	DBG("");
 
+	if (notification_sk > 0)
+		return false;
+
 	notification_sk = sk;
 
 	return true;
@@ -2284,5 +2287,8 @@ void bt_bluetooth_unregister(void)
 {
 	DBG("");
 
+	if (notification_sk < 0)
+		return;
+
 	notification_sk = -1;
 }
diff --git a/android/hidhost.c b/android/hidhost.c
index 842b8ad..a929a94 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -1190,6 +1190,9 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
 
 	DBG("");
 
+	if (notification_sk > 0)
+		return false;
+
 	bacpy(&adapter_addr, addr);
 
 	ctrl_io = bt_io_listen(connect_cb, NULL, NULL, NULL, &err,
@@ -1224,6 +1227,9 @@ void bt_hid_unregister(void)
 {
 	DBG("");
 
+	if (notification_sk < 0)
+		return;
+
 	notification_sk = -1;
 
 	if (ctrl_io) {
diff --git a/android/pan.c b/android/pan.c
index fba86b8..970a8a7 100644
--- a/android/pan.c
+++ b/android/pan.c
@@ -95,6 +95,9 @@ bool bt_pan_register(int sk, const bdaddr_t *addr)
 {
 	DBG("");
 
+	if (notification_sk > 0)
+		return false;
+
 	notification_sk = sk;
 
 	return true;
@@ -104,5 +107,8 @@ void bt_pan_unregister(void)
 {
 	DBG("");
 
+	if (notification_sk < 0)
+		return;
+
 	notification_sk = -1;
 }
-- 
1.8.3.2


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

* [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb
  2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
  2013-11-19 12:21 ` [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles Ravi kumar Veeramally
  2013-11-19 12:21 ` [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly Ravi kumar Veeramally
@ 2013-11-19 12:21 ` Ravi kumar Veeramally
  2013-11-19 13:31   ` Johan Hedberg
  2013-11-19 12:21 ` [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call Ravi kumar Veeramally
  2013-11-19 13:23 ` [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Johan Hedberg
  4 siblings, 1 reply; 14+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-19 12:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

---
 android/hidhost.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/android/hidhost.c b/android/hidhost.c
index a929a94..05a3fe4 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -522,7 +522,6 @@ static int uhid_create(struct hid_device *dev)
 	dev->uhid_fd = open(UHID_DEVICE_FILE, O_RDWR | O_CLOEXEC);
 	if (dev->uhid_fd < 0) {
 		error("Failed to open uHID device: %s", strerror(errno));
-		bt_hid_notify_state(dev, HAL_HIDHOST_STATE_NO_HID);
 		return -errno;
 	}
 
@@ -541,7 +540,6 @@ static int uhid_create(struct hid_device *dev)
 		error("Failed to create uHID device: %s", strerror(errno));
 		close(dev->uhid_fd);
 		dev->uhid_fd = -1;
-		bt_hid_notify_state(dev, HAL_HIDHOST_STATE_NO_HID);
 		return -errno;
 	}
 
@@ -559,16 +557,20 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 							gpointer user_data)
 {
 	struct hid_device *dev = user_data;
+	uint8_t state;
 
 	DBG("");
 
 	if (conn_err) {
 		error("%s", conn_err->message);
+		state = HAL_HIDHOST_STATE_FAILED;
 		goto failed;
 	}
 
-	if (uhid_create(dev) < 0)
+	if (uhid_create(dev) < 0) {
+		state = HAL_HIDHOST_STATE_NO_HID;
 		goto failed;
+	}
 
 	dev->intr_watch = g_io_add_watch(dev->intr_io,
 				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
@@ -579,6 +581,7 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 	return;
 
 failed:
+	bt_hid_notify_state(dev, state);
 	hid_device_free(dev);
 }
 
-- 
1.8.3.2


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

* [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call
  2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
                   ` (2 preceding siblings ...)
  2013-11-19 12:21 ` [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb Ravi kumar Veeramally
@ 2013-11-19 12:21 ` Ravi kumar Veeramally
  2013-11-19 13:35   ` Johan Hedberg
  2013-11-19 13:23 ` [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Johan Hedberg
  4 siblings, 1 reply; 14+ messages in thread
From: Ravi kumar Veeramally @ 2013-11-19 12:21 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

---
 android/hidhost.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/android/hidhost.c b/android/hidhost.c
index 05a3fe4..20dedc4 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -1226,6 +1226,14 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
 	return true;
 }
 
+static void free_hid_devices(gpointer data, gpointer user_data)
+{
+	struct hid_device *dev = data;
+
+	bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
+	hid_device_free(dev);
+}
+
 void bt_hid_unregister(void)
 {
 	DBG("");
@@ -1233,6 +1241,8 @@ void bt_hid_unregister(void)
 	if (notification_sk < 0)
 		return;
 
+	g_slist_foreach(devices, free_hid_devices, NULL);
+
 	notification_sk = -1;
 
 	if (ctrl_io) {
-- 
1.8.3.2


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

* Re: [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call
  2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
                   ` (3 preceding siblings ...)
  2013-11-19 12:21 ` [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call Ravi kumar Veeramally
@ 2013-11-19 13:23 ` Johan Hedberg
  4 siblings, 0 replies; 14+ messages in thread
From: Johan Hedberg @ 2013-11-19 13:23 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth

Hi Ravi,

On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
> ---
>  android/pan.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

This patch has been applied. Thanks.

Johan

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

* Re: [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles
  2013-11-19 12:21 ` [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles Ravi kumar Veeramally
@ 2013-11-19 13:27   ` Johan Hedberg
  2013-11-19 13:51     ` Ravi Kumar Veeramally
  0 siblings, 1 reply; 14+ messages in thread
From: Johan Hedberg @ 2013-11-19 13:27 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth

Hi Ravi,

On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
> ---
>  android/hal-pan.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/android/hal-pan.c b/android/hal-pan.c
> index 2bc560e..30facd4 100644
> --- a/android/hal-pan.c
> +++ b/android/hal-pan.c
> @@ -77,6 +77,9 @@ static bt_status_t pan_enable(int local_role)
>  	if (!interface_ready())
>  		return BT_STATUS_NOT_READY;
>  
> +	if (!(local_role == BTPAN_ROLE_PANU || local_role == BTPAN_ROLE_PANNAP))
> +		return BT_STATUS_UNSUPPORTED;
> +
>  	cmd.local_role = local_role;
>  
>  	return hal_ipc_cmd(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE,
> @@ -112,6 +115,14 @@ static bt_status_t pan_connect(const bt_bdaddr_t *bd_addr, int local_role,
>  	if (!interface_ready())
>  		return BT_STATUS_NOT_READY;
>  
> +	if (!((local_role == BTPAN_ROLE_PANNAP &&
> +			remote_role == BTPAN_ROLE_PANU) ||
> +		(local_role == BTPAN_ROLE_PANU &&
> +			remote_role == BTPAN_ROLE_PANNAP) ||
> +		(local_role == BTPAN_ROLE_PANU &&
> +			remote_role == BTPAN_ROLE_PANU)))
> +		return BT_STATUS_UNSUPPORTED;

First of all you've got incorrect indentation here which make this hard
to read (the return statement being on the same column as parts of the
if-statement. When you break lines indent at least by two tabs to make
a clear separation from the actual branch code.

Secondly, shouldn't we be checking that the given local role has been
enabled (through pan_enable)? Or does the daemon do that checking? In
fact is there a clear reason not to let the daemon do all the
verification checks and return an error status over IPC?

Thirdly, this if-statement takes a while to parse, so I'm wondering
whether it'd be clearer to format it in a bit more readable way, e.g.:

        switch (local_role) {
        case BTPAN_ROLE_PANNAP:
                if (remote_role != BTPAN_ROLE_PANU)
                        return BT_STATUS_UNSUPPORTED;
                break;
        case BTPAN_ROLE_PANU:
                if (remote_role != BTPAN_ROLE_PANNAP &&
                                                remote_role != BTPAN_ROLE_PANU)
                        return BT_STATUS_UNSUPPORTED;
                break;
        default:
                return BT_STATUS_UNSUPPORTED;
        }

Thoughts?

Johan

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

* Re: [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly
  2013-11-19 12:21 ` [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly Ravi kumar Veeramally
@ 2013-11-19 13:30   ` Johan Hedberg
  2013-11-19 13:52     ` Ravi Kumar Veeramally
  0 siblings, 1 reply; 14+ messages in thread
From: Johan Hedberg @ 2013-11-19 13:30 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth

Hi Ravi,

On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
> @@ -2275,6 +2275,9 @@ bool bt_bluetooth_register(int sk)
>  {
>  	DBG("");
>  
> +	if (notification_sk > 0)

0 is a valid file descriptor value so the check should be >= 0

> @@ -1190,6 +1190,9 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
>  
>  	DBG("");
>  
> +	if (notification_sk > 0)
> +		return false;

Same here.

> @@ -95,6 +95,9 @@ bool bt_pan_register(int sk, const bdaddr_t *addr)
>  {
>  	DBG("");
>  
> +	if (notification_sk > 0)
> +		return false;

And here.

Johan

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

* Re: [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb
  2013-11-19 12:21 ` [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb Ravi kumar Veeramally
@ 2013-11-19 13:31   ` Johan Hedberg
  2013-11-19 13:53     ` Ravi Kumar Veeramally
  0 siblings, 1 reply; 14+ messages in thread
From: Johan Hedberg @ 2013-11-19 13:31 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth

Hi Ravi,

On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
> ---
>  android/hidhost.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)

Could you add a bit more descriptive commit message to this one which
explains what was broken (and how) and how your patch fixes it. When I
get a patch with an empty commit message I expect it to be very trivial
and instantly understandable, but that's not the case here.

Johan

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

* Re: [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call
  2013-11-19 12:21 ` [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call Ravi kumar Veeramally
@ 2013-11-19 13:35   ` Johan Hedberg
  2013-11-19 13:55     ` Ravi Kumar Veeramally
  0 siblings, 1 reply; 14+ messages in thread
From: Johan Hedberg @ 2013-11-19 13:35 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth

Hi Ravi,

On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
> ---
>  android/hidhost.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/android/hidhost.c b/android/hidhost.c
> index 05a3fe4..20dedc4 100644
> --- a/android/hidhost.c
> +++ b/android/hidhost.c
> @@ -1226,6 +1226,14 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
>  	return true;
>  }
>  
> +static void free_hid_devices(gpointer data, gpointer user_data)
> +{
> +	struct hid_device *dev = data;
> +
> +	bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
> +	hid_device_free(dev);
> +}
> +
>  void bt_hid_unregister(void)
>  {
>  	DBG("");
> @@ -1233,6 +1241,8 @@ void bt_hid_unregister(void)
>  	if (notification_sk < 0)
>  		return;
>  
> +	g_slist_foreach(devices, free_hid_devices, NULL);

I suppose you also need to set devices = NULL; after this call?

Johan

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

* Re: [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles
  2013-11-19 13:27   ` Johan Hedberg
@ 2013-11-19 13:51     ` Ravi Kumar Veeramally
  0 siblings, 0 replies; 14+ messages in thread
From: Ravi Kumar Veeramally @ 2013-11-19 13:51 UTC (permalink / raw)
  To: linux-bluetooth


On 11/19/2013 03:27 PM, Johan Hedberg wrote:
> Hi Ravi,
>
> On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
>> ---
>>   android/hal-pan.c | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/android/hal-pan.c b/android/hal-pan.c
>> index 2bc560e..30facd4 100644
>> --- a/android/hal-pan.c
>> +++ b/android/hal-pan.c
>> @@ -77,6 +77,9 @@ static bt_status_t pan_enable(int local_role)
>>   	if (!interface_ready())
>>   		return BT_STATUS_NOT_READY;
>>   
>> +	if (!(local_role == BTPAN_ROLE_PANU || local_role == BTPAN_ROLE_PANNAP))
>> +		return BT_STATUS_UNSUPPORTED;
>> +
>>   	cmd.local_role = local_role;
>>   
>>   	return hal_ipc_cmd(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE,
>> @@ -112,6 +115,14 @@ static bt_status_t pan_connect(const bt_bdaddr_t *bd_addr, int local_role,
>>   	if (!interface_ready())
>>   		return BT_STATUS_NOT_READY;
>>   
>> +	if (!((local_role == BTPAN_ROLE_PANNAP &&
>> +			remote_role == BTPAN_ROLE_PANU) ||
>> +		(local_role == BTPAN_ROLE_PANU &&
>> +			remote_role == BTPAN_ROLE_PANNAP) ||
>> +		(local_role == BTPAN_ROLE_PANU &&
>> +			remote_role == BTPAN_ROLE_PANU)))
>> +		return BT_STATUS_UNSUPPORTED;
> First of all you've got incorrect indentation here which make this hard
> to read (the return statement being on the same column as parts of the
> if-statement. When you break lines indent at least by two tabs to make
> a clear separation from the actual branch code.
   Ok.
>
> Secondly, shouldn't we be checking that the given local role has been
> enabled (through pan_enable)? Or does the daemon do that checking? In
> fact is there a clear reason not to let the daemon do all the
> verification checks and return an error status over IPC?
   I thought it would be easier to do basic checks on supported combinations
  at HAL level  to reduce the ipc traffic.
  I don't know exactly whether UI can send these combinations, but we 
can at least
try with haltest tool.
>
> Thirdly, this if-statement takes a while to parse, so I'm wondering
> whether it'd be clearer to format it in a bit more readable way, e.g.:
>
>          switch (local_role) {
>          case BTPAN_ROLE_PANNAP:
>                  if (remote_role != BTPAN_ROLE_PANU)
>                          return BT_STATUS_UNSUPPORTED;
>                  break;
>          case BTPAN_ROLE_PANU:
>                  if (remote_role != BTPAN_ROLE_PANNAP &&
>                                                  remote_role != BTPAN_ROLE_PANU)
>                          return BT_STATUS_UNSUPPORTED;
>                  break;
>          default:
>                  return BT_STATUS_UNSUPPORTED;
>          }
>
> Thoughts?
   Yes, make sense to use 'switch' for more readability.
   Is it ok to send _v2 with switch or better to handle in daemon?

  Thanks,
  Ravi.

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

* Re: [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly
  2013-11-19 13:30   ` Johan Hedberg
@ 2013-11-19 13:52     ` Ravi Kumar Veeramally
  0 siblings, 0 replies; 14+ messages in thread
From: Ravi Kumar Veeramally @ 2013-11-19 13:52 UTC (permalink / raw)
  To: linux-bluetooth, Johan Hedberg

Hi,

On 11/19/2013 03:30 PM, Johan Hedberg wrote:
> Hi Ravi,
>
> On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
>> @@ -2275,6 +2275,9 @@ bool bt_bluetooth_register(int sk)
>>   {
>>   	DBG("");
>>   
>> +	if (notification_sk > 0)
> 0 is a valid file descriptor value so the check should be >= 0
>
>> @@ -1190,6 +1190,9 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
>>   
>>   	DBG("");
>>   
>> +	if (notification_sk > 0)
>> +		return false;
> Same here.
>
>> @@ -95,6 +95,9 @@ bool bt_pan_register(int sk, const bdaddr_t *addr)
>>   {
>>   	DBG("");
>>   
>> +	if (notification_sk > 0)
>> +		return false;
> And here.
>
> Johan
>
  Ok.

  Thanks,
  Ravi.

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

* Re: [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb
  2013-11-19 13:31   ` Johan Hedberg
@ 2013-11-19 13:53     ` Ravi Kumar Veeramally
  0 siblings, 0 replies; 14+ messages in thread
From: Ravi Kumar Veeramally @ 2013-11-19 13:53 UTC (permalink / raw)
  To: linux-bluetooth, Johan Hedberg

Hi Johan,

On 11/19/2013 03:31 PM, Johan Hedberg wrote:
> Hi Ravi,
>
> On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
>> ---
>>   android/hidhost.c | 9 ++++++---
>>   1 file changed, 6 insertions(+), 3 deletions(-)
> Could you add a bit more descriptive commit message to this one which
> explains what was broken (and how) and how your patch fixes it. When I
> get a patch with an empty commit message I expect it to be very trivial
> and instantly understandable, but that's not the case here.
   I will write more details.

  Regards,
  Ravi.

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

* Re: [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call
  2013-11-19 13:35   ` Johan Hedberg
@ 2013-11-19 13:55     ` Ravi Kumar Veeramally
  0 siblings, 0 replies; 14+ messages in thread
From: Ravi Kumar Veeramally @ 2013-11-19 13:55 UTC (permalink / raw)
  To: linux-bluetooth, Johan Hedberg

Hi Johan,

On 11/19/2013 03:35 PM, Johan Hedberg wrote:
> Hi Ravi,
>
> On Tue, Nov 19, 2013, Ravi kumar Veeramally wrote:
>> ---
>>   android/hidhost.c | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/android/hidhost.c b/android/hidhost.c
>> index 05a3fe4..20dedc4 100644
>> --- a/android/hidhost.c
>> +++ b/android/hidhost.c
>> @@ -1226,6 +1226,14 @@ bool bt_hid_register(int sk, const bdaddr_t *addr)
>>   	return true;
>>   }
>>   
>> +static void free_hid_devices(gpointer data, gpointer user_data)
>> +{
>> +	struct hid_device *dev = data;
>> +
>> +	bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
>> +	hid_device_free(dev);
>> +}
>> +
>>   void bt_hid_unregister(void)
>>   {
>>   	DBG("");
>> @@ -1233,6 +1241,8 @@ void bt_hid_unregister(void)
>>   	if (notification_sk < 0)
>>   		return;
>>   
>> +	g_slist_foreach(devices, free_hid_devices, NULL);
> I suppose you also need to set devices = NULL; after this call?
  Sure.

  Thanks,
  Ravi.

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

end of thread, other threads:[~2013-11-19 13:55 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-19 12:21 [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Ravi kumar Veeramally
2013-11-19 12:21 ` [PATCH 2/5] android/hal-pan: Return error in case of unsupported PAN roles Ravi kumar Veeramally
2013-11-19 13:27   ` Johan Hedberg
2013-11-19 13:51     ` Ravi Kumar Veeramally
2013-11-19 12:21 ` [PATCH 3/5] android: Handle multiple init(register) and cleanup(unregister) calls properly Ravi kumar Veeramally
2013-11-19 13:30   ` Johan Hedberg
2013-11-19 13:52     ` Ravi Kumar Veeramally
2013-11-19 12:21 ` [PATCH 4/5] android/hidhost: Handle error case properly in interrupt_connect_cb Ravi kumar Veeramally
2013-11-19 13:31   ` Johan Hedberg
2013-11-19 13:53     ` Ravi Kumar Veeramally
2013-11-19 12:21 ` [PATCH 5/5] android/hidhost: Free all connected devices in profile cleanup call Ravi kumar Veeramally
2013-11-19 13:35   ` Johan Hedberg
2013-11-19 13:55     ` Ravi Kumar Veeramally
2013-11-19 13:23 ` [PATCH 1/5] android/pan: Fix wrong struct parameter in disconnect function call Johan Hedberg

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.