diff mbox series

[BlueZ] mesh: On exit free timer for filtering duplicates

Message ID 20230320050618.314590-1-inga.stotland@gmail.com
State New
Headers show
Series [BlueZ] mesh: On exit free timer for filtering duplicates | expand

Commit Message

Inga Stotland March 20, 2023, 5:06 a.m. UTC
This frees resources associated with duplicate filter timer
when destroying management IO.
---
 mesh/mesh-io-mgmt.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

patchwork-bot+bluetooth@kernel.org March 20, 2023, 7:30 p.m. UTC | #1
Hello:

This patch was applied to bluetooth/bluez.git (master)
by Brian Gix <brian.gix@gmail.com>:

On Sun, 19 Mar 2023 22:06:18 -0700 you wrote:
> This frees resources associated with duplicate filter timer
> when destroying management IO.
> ---
>  mesh/mesh-io-mgmt.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Here is the summary with links:
  - [BlueZ] mesh: On exit free timer for filtering duplicates
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=4a3f465a55c9

You are awesome, thank you!
diff mbox series

Patch

diff --git a/mesh/mesh-io-mgmt.c b/mesh/mesh-io-mgmt.c
index f1385edcc..5f51f3a1f 100644
--- a/mesh/mesh-io-mgmt.c
+++ b/mesh/mesh-io-mgmt.c
@@ -35,6 +35,7 @@  struct mesh_io_private {
 	struct mesh_io *io;
 	void *user_data;
 	struct l_timeout *tx_timeout;
+	struct l_timeout *dup_timeout;
 	struct l_queue *dup_filters;
 	struct l_queue *rx_regs;
 	struct l_queue *tx_pkts;
@@ -146,6 +147,7 @@  static void filter_timeout(struct l_timeout *timeout, void *user_data)
 
 done:
 	l_timeout_remove(timeout);
+	pvt->dup_timeout = NULL;
 }
 
 /* Ignore consequtive duplicate advertisements within timeout period */
@@ -179,7 +181,8 @@  static bool filter_dups(const uint8_t *addr, const uint8_t *adv,
 
 	/* Start filter expiration timer */
 	if (!l_queue_length(pvt->dup_filters))
-		l_timeout_create(1, filter_timeout, NULL, NULL);
+		pvt->dup_timeout = l_timeout_create(1, filter_timeout, NULL,
+									NULL);
 
 	l_queue_push_head(pvt->dup_filters, filter);
 	instant_delta = instant - filter->instant;
@@ -474,6 +477,7 @@  static bool dev_destroy(struct mesh_io *io)
 	mesh_mgmt_unregister(pvt->rx_id);
 	mesh_mgmt_unregister(pvt->tx_id);
 	l_timeout_remove(pvt->tx_timeout);
+	l_timeout_remove(pvt->dup_timeout);
 	l_queue_destroy(pvt->dup_filters, l_free);
 	l_queue_destroy(pvt->rx_regs, free_rx_reg);
 	l_queue_destroy(pvt->tx_pkts, l_free);