================================
WARNING: inconsistent lock state
syzkaller #0 Not tainted
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
kworker/u8:5/6518 [HC0[0]:SC1[1]:HE1:SE0] takes:
ffff888043391ca8 (&p->tcfa_lock){+.?.}-{3:3}, at: est_timer+0xd4/0x9f0
{SOFTIRQ-ON-W} state was registered at:
  lock_acquire+0x120/0x360
  _raw_spin_lock+0x2e/0x40
  tcf_skbedit_init+0xaf4/0xff0
  tcf_action_init_1+0x463/0x6d0
  tcf_action_init+0x2cf/0xab0
  tc_ctl_action+0x430/0xbd0
  rtnetlink_rcv_msg+0x77c/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
irq event stamp: 8914396
hardirqs last  enabled at (8914396): [<ffffffff8b7cceb3>] _raw_spin_unlock_irq+0x23/0x50
hardirqs last disabled at (8914395): [<ffffffff8b7ccc2d>] _raw_spin_lock_irq+0x7d/0xf0
softirqs last  enabled at (8914382): [<ffffffff8b483a48>] batadv_nc_purge_paths+0x318/0x3b0
softirqs last disabled at (8914383): [<ffffffff8184e98c>] do_softirq+0xec/0x180

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

       CPU0
       ----
  lock(&p->tcfa_lock);
  <Interrupt>
    lock(&p->tcfa_lock);

 *** DEADLOCK ***

3 locks held by kworker/u8:5/6518:
 #0: ffff88810a99a148 ((wq_completion)bat_events){+.+.}-{0:0}, at: process_scheduled_works+0x9b4/0x17b0
 #1: ffffc90006e47bc0 ((work_completion)(&(&bat_priv->nc.work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x9ef/0x17b0
 #2: ffffc90000007c80 ((&est->timer)){+.-.}-{0:0}, at: call_timer_fn+0xbe/0x5f0

stack backtrace:
CPU: 0 UID: 0 PID: 6518 Comm: kworker/u8:5 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
Workqueue: bat_events batadv_nc_worker
Call Trace:
 <IRQ>
 dump_stack_lvl+0x189/0x250
 print_usage_bug+0x297/0x2e0
 valid_state+0xc3/0xf0
 mark_lock_irq+0x36/0x390
 mark_lock+0x11b/0x190
 __lock_acquire+0x680/0xd20
 lock_acquire+0x120/0x360
 _raw_spin_lock+0x2e/0x40
 est_timer+0xd4/0x9f0
 call_timer_fn+0x17e/0x5f0
 __run_timer_base+0x61a/0x860
 run_timer_softirq+0xb7/0x180
 handle_softirqs+0x286/0x870
 do_softirq+0xec/0x180
 </IRQ>
 <TASK>
 __local_bh_enable_ip+0x17d/0x1c0
 batadv_nc_purge_paths+0x318/0x3b0
 batadv_nc_worker+0x328/0x610
 process_scheduled_works+0xae1/0x17b0
 worker_thread+0x8a0/0xda0
 kthread+0x711/0x8a0
 ret_from_fork+0x3fc/0x770
 ret_from_fork_asm+0x1a/0x30
 </TASK>
