Bluetooth: Check hci_req_run error code in __hci_req_sync

Since hci_req_run will be returning more than one error code, we
should check its returning value in __hci_req_sync.

This patch also changes the returning value of hci_req_run in case
the HCI request is empty.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: HCI request error handling

When we are building a HCI request with more the one HCI command
and one of the hci_req_add calls fail, we should have some cleanup
routine so the HCI commands already queued on HCI request can be
deleted. Otherwise we will face some memory leaks issues.

This patch implements the HCI request error handling which is the
following: If a hci_req_add fails, we set a flag in struct hci_
request to indicate the failure. Once hci_req_run is called, we
verify the error flag. If it is set, we delete all HCI commands
already queued and return a error code.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Make hci_req_add return void

Since no one checks the returning value of hci_req_add and HCI request
errors are now handled in hci_req_run, we can make hci_req_add return
void.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Bluetooth: Check req->error flag in hci_req_add

If req->error is set, there is no point in queueing the HCI command
in HCI request command queue since it won't be sent anyway.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>