diff mbox series

[BlueZ,1/2] btdev: Fix not removing connection and advertising set on reset

Message ID 20220502210553.2271064-1-luiz.dentz@gmail.com (mailing list archive)
State Accepted
Commit c75ff36b77f88821beffabe4d3e60317c243d9b1
Headers show
Series [BlueZ,1/2] btdev: Fix not removing connection and advertising set on reset | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/checkpatch success Checkpatch PASS
tedd_an/gitlint success Gitlint PASS
tedd_an/setupell success Setup ELL PASS
tedd_an/buildprep success Build Prep PASS
tedd_an/build success Build Configuration PASS
tedd_an/makecheck success Make Check PASS
tedd_an/makecheckvalgrind success Make Check PASS
tedd_an/makedistcheck success Make Distcheck PASS
tedd_an/build_extell success Build External ELL PASS
tedd_an/build_extell_make success Build Make with External ELL PASS
tedd_an/incremental_build success Pass

Commit Message

Luiz Augusto von Dentz May 2, 2022, 9:05 p.m. UTC
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

This makes sure that all connections and advertising sets are cleanup
on reset.
---
 emulator/btdev.c | 76 +++++++++++++++++++++++++-----------------------
 1 file changed, 40 insertions(+), 36 deletions(-)

Comments

bluez.test.bot@gmail.com May 2, 2022, 11:17 p.m. UTC | #1
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=637722

---Test result---

Test Summary:
CheckPatch                    FAIL      2.98 seconds
GitLint                       PASS      1.95 seconds
Prep - Setup ELL              PASS      50.92 seconds
Build - Prep                  PASS      0.76 seconds
Build - Configure             PASS      10.03 seconds
Build - Make                  PASS      1421.90 seconds
Make Check                    PASS      12.93 seconds
Make Check w/Valgrind         PASS      520.30 seconds
Make Distcheck                PASS      272.81 seconds
Build w/ext ELL - Configure   PASS      10.27 seconds
Build w/ext ELL - Make        PASS      1394.51 seconds
Incremental Build with patchesPASS      2867.14 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf
Output:
[BlueZ,2/2] monitor: Decode LTV fields of Basic Audio Announcements
ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#151: FILE: monitor/packet.c:3352:
+		print_hex_field(label , v, l);
 		                      ^

ERROR:SPACING: space prohibited before that ',' (ctx:WxW)
#155: FILE: monitor/packet.c:3356:
+		print_hex_field(label , iov.iov_base, iov.iov_len);
 		                      ^

/github/workspace/src/12834736.patch total: 2 errors, 0 warnings, 60 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.

/github/workspace/src/12834736.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.




---
Regards,
Linux Bluetooth
patchwork-bot+bluetooth@kernel.org May 2, 2022, 11:50 p.m. UTC | #2
Hello:

This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Mon,  2 May 2022 14:05:52 -0700 you wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
> 
> This makes sure that all connections and advertising sets are cleanup
> on reset.
> ---
>  emulator/btdev.c | 76 +++++++++++++++++++++++++-----------------------
>  1 file changed, 40 insertions(+), 36 deletions(-)

Here is the summary with links:
  - [BlueZ,1/2] btdev: Fix not removing connection and advertising set on reset
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=c75ff36b77f8
  - [BlueZ,2/2] monitor: Decode LTV fields of Basic Audio Announcements
    (no matching commit)

You are awesome, thank you!
diff mbox series

Patch

diff --git a/emulator/btdev.c b/emulator/btdev.c
index d3f565438..641e308b3 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
@@ -509,6 +509,42 @@  void btdev_set_rl_len(struct btdev *btdev, uint8_t len)
 	btdev->le_rl_len = len;
 }
 
+static void conn_unlink(struct btdev_conn *conn1, struct btdev_conn *conn2)
+{
+	conn1->link = NULL;
+	conn2->link = NULL;
+}
+
+static void conn_remove(void *data)
+{
+	struct btdev_conn *conn = data;
+
+	if (conn->link) {
+		struct btdev_conn *link = conn->link;
+
+		conn_unlink(conn, conn->link);
+		conn_remove(link);
+	}
+
+	queue_remove(conn->dev->conns, conn);
+
+	free(conn->data);
+	free(conn);
+}
+
+static void le_ext_adv_free(void *data)
+{
+	struct le_ext_adv *ext_adv = data;
+
+	/* Remove to queue */
+	queue_remove(ext_adv->dev->le_ext_adv, ext_adv);
+
+	if (ext_adv->id)
+		timeout_remove(ext_adv->id);
+
+	free(ext_adv);
+}
+
 static void btdev_reset(struct btdev *btdev)
 {
 	/* FIXME: include here clearing of all states that should be
@@ -517,12 +553,16 @@  static void btdev_reset(struct btdev *btdev)
 
 	btdev->le_scan_enable		= 0x00;
 	btdev->le_adv_enable		= 0x00;
+	btdev->le_pa_enable		= 0x00;
 
 	al_clear(btdev);
 	rl_clear(btdev);
 
 	btdev->le_al_len = AL_SIZE;
 	btdev->le_rl_len = RL_SIZE;
+
+	queue_remove_all(btdev->conns, NULL, NULL, conn_remove);
+	queue_remove_all(btdev->le_ext_adv, NULL, NULL, le_ext_adv_free);
 }
 
 static int cmd_reset(struct btdev *dev, const void *data, uint8_t len)
@@ -674,29 +714,6 @@  static bool match_handle(const void *data, const void *match_data)
 	return conn->handle == handle;
 }
 
-static void conn_unlink(struct btdev_conn *conn1, struct btdev_conn *conn2)
-{
-	conn1->link = NULL;
-	conn2->link = NULL;
-}
-
-static void conn_remove(void *data)
-{
-	struct btdev_conn *conn = data;
-
-	if (conn->link) {
-		struct btdev_conn *link = conn->link;
-
-		conn_unlink(conn, conn->link);
-		conn_remove(link);
-	}
-
-	queue_remove(conn->dev->conns, conn);
-
-	free(conn->data);
-	free(conn);
-}
-
 static void disconnect_complete(struct btdev *dev, uint16_t handle,
 					uint8_t status, uint8_t reason)
 {
@@ -4627,19 +4644,6 @@  static struct le_ext_adv *le_ext_adv_new(struct btdev *btdev, uint8_t handle)
 	return ext_adv;
 }
 
-static void le_ext_adv_free(void *data)
-{
-	struct le_ext_adv *ext_adv = data;
-
-	/* Remove to queue */
-	queue_remove(ext_adv->dev->le_ext_adv, ext_adv);
-
-	if (ext_adv->id)
-		timeout_remove(ext_adv->id);
-
-	free(ext_adv);
-}
-
 static int cmd_set_adv_rand_addr(struct btdev *dev, const void *data,
 							uint8_t len)
 {