Re: [PATCHv2 3/5] Bluetooth: Add opcode to error message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

> From: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx>
> 
> Sometimes HCI command sending timeouts and gives error message without
> specifying which command causes error. Patch makes sure that opcode
> is printed to help debugging.
> 
> Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@xxxxxxxxx>
> ---
>  net/bluetooth/hci_core.c |   13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
> index 0334ebe..146854f 100644
> --- a/net/bluetooth/hci_core.c
> +++ b/net/bluetooth/hci_core.c
> @@ -1366,11 +1366,18 @@ int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr)
>  }
>  
>  /* HCI command timer function */
> -static void hci_cmd_timer(unsigned long arg)
> +static void hci_cmd_timeout(unsigned long arg)
>  {
>  	struct hci_dev *hdev = (void *) arg;
>  
> -	BT_ERR("%s command tx timeout", hdev->name);
> +	if (hdev->sent_cmd) {
> +		struct hci_command_hdr *sent = (void *) hdev->sent_cmd->data;
> +		u16 opcode = __le16_to_cpu(sent->opcode);
> +
> +		BT_ERR("%s command 0x%4.4x tx timeout", hdev->name, opcode);
> +	} else
> +		BT_ERR("%s command tx timeout", hdev->name);
> +

Just a minor, 'else' should have braces as well.

>  	atomic_set(&hdev->cmd_cnt, 1);
>  	queue_work(hdev->workqueue, &hdev->cmd_work);
>  }
> @@ -1670,7 +1677,7 @@ struct hci_dev *hci_alloc_dev(void)
>  
>  	init_waitqueue_head(&hdev->req_wait_q);
>  
> -	setup_timer(&hdev->cmd_timer, hci_cmd_timer, (unsigned long) hdev);
> +	setup_timer(&hdev->cmd_timer, hci_cmd_timeout, (unsigned long) hdev);
>  
>  	hci_init_sysfs(hdev);
>  	discovery_init(hdev);
> 

-- 
BR
Szymon Janc
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux