locking: fix restore in cross function code
commit13d9c654c29c44c9790b52ad6f2c6248da3f4b4a
authorDan Carpenter <dan.carpenter@oracle.com>
Sat, 19 Dec 2020 11:26:15 +0000 (19 14:26 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Sat, 19 Dec 2020 11:26:15 +0000 (19 14:26 +0300)
treecf54b994b593d082b9565e32e8678b53275b8b4b
parent6860ba5d3410c4e210b560471a4c15f3a068c53a
locking: fix restore in cross function code

The bug here is when we have a function that accepts a parameter "flags"
and it does:

void my_function(..., unsigned long flags)
{
...
spin_unlock_irqrestore(lock, flags);
...
spin_lock_irqrestore(lock, flags);
}

The function was being recorded as a lock but actually the locks are the
same at the beginning and the end.  This change make restore match how
regular lock and unlock are handled.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
check_locking.c