On 07/28/2016 10:07 AM, Wei Yongjun wrote:
> In the error handling case of nla_nest_start() failed read_unlock_bh()
> is called to unlock a lock that had not been taken yet. sparse warns
> about the context imbalance as the following:
>
> net/tipc/monitor.c:799:23: warning:
> context imbalance in '__tipc_nl_add_monitor' - different lock contexts for
> basic block
>
> Fixes: cf6f7e1d5109 ('tipc: dump monitor attributes')
> Signed-off-by: Wei Yongjun <[email protected]>
Acked-by: Ying Xue <[email protected]>
> ---
> net/tipc/monitor.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/tipc/monitor.c b/net/tipc/monitor.c
> index be70a57..b62caa1 100644
> --- a/net/tipc/monitor.c
> +++ b/net/tipc/monitor.c
> @@ -794,10 +794,10 @@ int __tipc_nl_add_monitor(struct net *net, struct
> tipc_nl_msg *msg,
> return 0;
>
> attr_msg_full:
> + read_unlock_bh(&mon->lock);
> nla_nest_cancel(msg->skb, attrs);
> msg_full:
> genlmsg_cancel(msg->skb, hdr);
> - read_unlock_bh(&mon->lock);
>
> return -EMSGSIZE;
> }
>
>