13 if (!_spin_trylock(mylock)) {
14 return;
15 }
16
17 _spin_unlock(mylock);
18 _spin_unlock(mylock2);
19
20 if (a)
21 _spin_unlock(mylock);
22 _spin_lock(mylock2);
23
24 if (!_spin_trylock(mylock3))
25 return;
26 return;
27 }
28 /*
29 * check-name: Smatch locking #2
30 * check-command: smatch --project=kernel sm_locking2.c
31 *
32 * check-output-start
33 sm_locking2.c:21 func() error: double unlock 'spin_lock:mylock'
34 sm_locking2.c:26 func() warn: inconsistent returns 'spin_lock:mylock3'.
35 Locked on: line 26
36 Unlocked on: line 14
37 line 25
38 * check-output-end
39 */
|
13 if (!_spin_trylock(mylock)) {
14 return;
15 }
16
17 _spin_unlock(mylock);
18 _spin_unlock(mylock2);
19
20 if (a)
21 _spin_unlock(mylock);
22 _spin_lock(mylock2);
23
24 if (!_spin_trylock(mylock3))
25 return;
26 return;
27 }
28 /*
29 * check-name: Smatch locking #2
30 * check-command: smatch --project=kernel sm_locking2.c
31 *
32 * check-output-start
33 sm_locking2.c:21 func() error: double unlocked 'mylock' (orig line 17)
34 sm_locking2.c:26 func() warn: inconsistent returns 'mylock3'.
35 Locked on : 26
36 Unlocked on: 25
37 * check-output-end
38 */
|