Bluetooth: Fix return value in hci_dev_do_close()

Started by Kangmin Park on Aug 17, 2021 · 2 messages from 2 authors · Last reply Aug 17, 2021

Subsystems (2)

Maintainers (3)

STALE1916d

open the first message on its own page

Message details and related content
hci_error_reset() return without calling hci_dev_do_open() when
hci_dev_do_close() return error value which is not 0.

Also, hci_dev_close() return hci_dev_do_close() function's return
value.

But, hci_dev_do_close() return always 0 even if hdev->shutdown
return error value. So, fix hci_dev_do_close() to save and return
the return value of the hdev->shutdown when it is called.

Fixes: a44fecbd52a4d ("Bluetooth: Add shutdown callback before closing the device")
Signed-off-by: Kangmin Park <redacted>
---
 net/bluetooth/hci_core.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index e1a545c8a69f..5f3c7515a8f0 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1718,6 +1718,7 @@ static void hci_pend_le_actions_clear(struct hci_dev *hdev)
 int hci_dev_do_close(struct hci_dev *hdev)
 {
 	bool auto_off;
+	int ret = 0;
 
 	BT_DBG("%s %p", hdev->name, hdev);
 
@@ -1730,7 +1731,7 @@ int hci_dev_do_close(struct hci_dev *hdev)
 	if (!test_and_clear_bit(HCI_UP, &hdev->flags)) {
 		cancel_delayed_work_sync(&hdev->cmd_timer);
 		hci_req_sync_unlock(hdev);
-		return 0;
+		return ret;
 	}
 
 	hci_leds_update_powered(hdev, false);
@@ -1803,7 +1804,7 @@ int hci_dev_do_close(struct hci_dev *hdev)
 	    test_bit(HCI_UP, &hdev->flags)) {
 		/* Execute vendor specific shutdown routine */
 		if (hdev->shutdown)
-			hdev->shutdown(hdev);
+			ret = hdev->shutdown(hdev);
 	}
 
 	/* flush cmd  work */
@@ -1845,7 +1846,7 @@ int hci_dev_do_close(struct hci_dev *hdev)
 	hci_req_sync_unlock(hdev);
 
 	hci_dev_put(hdev);
-	return 0;
+	return ret;
 }
 
 int hci_dev_close(__u16 dev)
-- 
2.26.2

RE: [net] Bluetooth: Fix return value in hci_dev_do_close()

Message details and related content
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=532485

---Test result---

Test Summary:
CheckPatch                    FAIL      0.56 seconds
GitLint                       FAIL      0.11 seconds
BuildKernel                   PASS      523.83 seconds
TestRunner: Setup             PASS      345.85 seconds
TestRunner: l2cap-tester      PASS      2.56 seconds
TestRunner: bnep-tester       PASS      1.90 seconds
TestRunner: mgmt-tester       PASS      30.67 seconds
TestRunner: rfcomm-tester     PASS      2.15 seconds
TestRunner: sco-tester        PASS      2.01 seconds
TestRunner: smp-tester        FAIL      2.07 seconds
TestRunner: userchan-tester   PASS      1.93 seconds

Details
##############################
Test: CheckPatch - FAIL - 0.56 seconds
Run checkpatch.pl script with rule in .checkpatch.conf
Bluetooth: Fix return value in hci_dev_do_close()
WARNING: Unknown commit id 'a44fecbd52a4d', maybe rebased or not pulled?
#16: 
Fixes: a44fecbd52a4d ("Bluetooth: Add shutdown callback before closing the device")

total: 0 errors, 1 warnings, 0 checks, 31 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

"[PATCH] Bluetooth: Fix return value in hci_dev_do_close()" has style problems, please review.

NOTE: If any of the errors are false positives, please report

64 more lines

Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help