Re: [PATCH BlueZ] mesh: Fix regression error in HB subscription set

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

 



Applied.

On Wed, 2020-11-18 at 11:56 -0800, Inga Stotland wrote:
> This fixes a regression introduced in commit c77bb848a9fb
> ("mesh: Refactor heartbeat pub/sub"):
> Heartbeat subscription should be enabled unless either source or
> destination are unassigned addresses or period log is zero.
> 
> Also, decrement ref count on group destination address if period log
> is zer since the subscription is not supposed to be processed.
> ---
>  mesh/net.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/mesh/net.c b/mesh/net.c
> index 9e0ea860f..b24cdba77 100644
> --- a/mesh/net.c
> +++ b/mesh/net.c
> @@ -3582,16 +3582,21 @@ int mesh_net_set_heartbeat_sub(struct mesh_net *net, uint16_t src, uint16_t dst,
>  		sub->max_hops = 0;
>  
>  	} else if (!period_log && src == sub->src && dst == sub->dst) {
> +		if (IS_GROUP(sub->dst))
> +			mesh_net_dst_unreg(net, sub->dst);
> +
>  		/* Preserve collected data, but disable */
>  		sub->enabled = false;
>  		sub->period = 0;
>  
> -	} else if (sub->dst != dst) {
> -		if (IS_GROUP(sub->dst))
> -			mesh_net_dst_unreg(net, sub->dst);
> +	} else {
> +		if (sub->dst != dst) {
> +			if (IS_GROUP(sub->dst))
> +				mesh_net_dst_unreg(net, sub->dst);
>  
> -		if (IS_GROUP(dst))
> -			mesh_net_dst_reg(net, dst);
> +			if (IS_GROUP(dst))
> +				mesh_net_dst_reg(net, dst);
> +		}
>  
>  		sub->enabled = !!period_log;
>  		sub->src = src;




[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