From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Szymon Janc To: Andrei Emeltchenko Subject: Re: [PATCHv2 3/5] Bluetooth: Add opcode to error message Date: Fri, 8 Jun 2012 13:17:42 +0200 CC: "linux-bluetooth@vger.kernel.org" References: <1339143166-6523-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> <1339153405-12070-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> <1339153405-12070-3-git-send-email-Andrei.Emeltchenko.news@gmail.com> In-Reply-To: <1339153405-12070-3-git-send-email-Andrei.Emeltchenko.news@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: <201206081317.42898.szymon.janc@tieto.com> Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi, > From: Andrei Emeltchenko > > 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 > --- > 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