Re: [PATCH BlueZ] mesh: Only deregister io for the last network detached

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Applied

On Fri, 2020-11-06 at 17:48 -0500, Michael N. Moran wrote:
> When multiple mesh networks are active and one is detached
> using Leave(), the I/O to all networks is halted.
> 
> This patch prevents that by only deregistering the I/O
> if all networks have been detached.
> 
> ---
>  mesh/net.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/mesh/net.c b/mesh/net.c
> index 01a475d74..9e0ea860f 100644
> --- a/mesh/net.c
> +++ b/mesh/net.c
> @@ -2899,8 +2899,12 @@ struct mesh_io *mesh_net_detach(struct mesh_net *net)
>  	io = net->io;
>  
>  	mesh_io_send_cancel(net->io, &type, 1);
> -	mesh_io_deregister_recv_cb(io, snb, sizeof(snb));
> -	mesh_io_deregister_recv_cb(io, pkt, sizeof(pkt));
> +
> +	/* Only deregister io if this is the last network detached.*/
> +	if (l_queue_length(nets) < 2) {
> +		mesh_io_deregister_recv_cb(io, snb, sizeof(snb));
> +		mesh_io_deregister_recv_cb(io, pkt, sizeof(pkt));
> +	}
>  
>  	net->io = NULL;
>  	l_queue_remove(nets, net);




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux