============================================
WARNING: possible recursive locking detected
syzkaller #0 Not tainted
--------------------------------------------
syz.1.2576/15821 is trying to acquire lock:
ffff8881067e4dd8 (&bond->mode_lock){+.-.}-{3:3}, at: bond_do_alb_xmit+0x2bf/0x820

but task is already holding lock:
ffff888109808dd8 (&bond->mode_lock){+.-.}-{3:3}, at: bond_3ad_unbind_slave+0xc4/0x25c0

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&bond->mode_lock);
  lock(&bond->mode_lock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

5 locks held by syz.1.2576/15821:
 #0: ffffffff8f538ac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x8db/0x1c70
 #1: ffff888109808dd8 (&bond->mode_lock){+.-.}-{3:3}, at: bond_3ad_unbind_slave+0xc4/0x25c0
 #2: ffffffff8e139f40 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x27b/0x3b50
 #3: ffffffff8e139f40 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x27b/0x3b50
 #4: ffffffff8e139ee0 (rcu_read_lock){....}-{1:3}, at: bond_start_xmit+0xf8/0x1a10

stack backtrace:
CPU: 0 UID: 0 PID: 15821 Comm: syz.1.2576 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250
 print_deadlock_bug+0x28b/0x2a0
 validate_chain+0x1a3f/0x2140
 __lock_acquire+0xab9/0xd20
 lock_acquire+0x120/0x360
 _raw_spin_lock+0x2e/0x40
 bond_do_alb_xmit+0x2bf/0x820
 bond_start_xmit+0x6b5/0x1a10
 dev_hard_start_xmit+0x2d7/0x830
 sch_direct_xmit+0x241/0x4b0
 __qdisc_run+0xb16/0x15f0
 __dev_queue_xmit+0x1056/0x3b50
 macvlan_start_xmit+0x46d/0x6e0
 dev_hard_start_xmit+0x2d7/0x830
 __dev_queue_xmit+0x1b8d/0x3b50
 ad_lacpdu_send+0x302/0x4d0
 bond_3ad_unbind_slave+0x52a/0x25c0
 __bond_release_one+0x39a/0x10e0
 do_set_master+0x312/0x6d0
 do_setlink+0xcf0/0x41c0
 rtnl_newlink+0x149f/0x1c70
 rtnetlink_rcv_msg+0x7cf/0xb70
 netlink_rcv_skb+0x208/0x470
 netlink_unicast+0x82f/0x9e0
 netlink_sendmsg+0x805/0xb30
 __sock_sendmsg+0x21c/0x270
 ____sys_sendmsg+0x505/0x830
 ___sys_sendmsg+0x21f/0x2a0
 __x64_sys_sendmsg+0x19b/0x260
 do_syscall_64+0xfa/0x3b0
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f875878ebe9
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f87596f0038 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007f87589c5fa0 RCX: 00007f875878ebe9
RDX: 0000000000000000 RSI: 0000200000000280 RDI: 000000000000000b
RBP: 00007f8758811e19 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f87589c6038 R14: 00007f87589c5fa0 R15: 00007ffcdfa3d5b8
 </TASK>
bond3: (slave macvlan0): Releasing backup interface
bond0: (slave bond36): Releasing active interface
bond0: (slave bond36): the permanent HWaddr of slave - 5e:bf:18:e3:9f:73 - is still in use by bond - set the HWaddr of slave to a different address to avoid conflicts
bond36: left promiscuous mode
bond0: (slave bond37): making interface the new active one
bond37: entered promiscuous mode
bond0: (slave bond37): Releasing active interface
bond37: left promiscuous mode
bond38: left allmulticast mode
bridge31: port 1(bond38) entered disabled state
syz.1.2576 (15821) used greatest stack depth: 18344 bytes left
