Sparse says that you...
On Fri, 8 Jan 2021 18:31:58 +0200 Vladimir Oltean wrote:
> + rcu_read_lock();
> +
> + bond_for_each_slave_rcu(bond, slave, iter) {
> + struct bonding_slave_dev *s;
> +
> + s = kzalloc(sizeof(*s), GFP_ATOMIC);
> + if (!s) {
> + rcu_read_unlock();
..unlock..
> + bond_put_slaves(slaves);
> + break;
> + }
> +
> + s->ndev = slave->dev;
> + dev_hold(s->ndev);
> + list_add_tail(&s->list, slaves);
> + (*num_slaves)++;
> + }
> +
> + rcu_read_unlock();
..twice:
drivers/net/bonding/bond_main.c: note: in included file (...):
include/linux/rcupdate.h:700:9: warning: context imbalance in 'bond_get_stats'
- unexpected unlock