From 9e27f87ded73aae871b94c5c161feb52d4c59e77 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 29 Mar 2010 01:24:39 +0300 Subject: [PATCH] check_locking: clean up list of kernel locks There are locks missing from here but I've been dreading to even look at it because this list was such a mess. Hopefully it's cleaner now. In the process of cleaning up, I found two entries which were duplicated. Signed-off-by: Dan Carpenter --- check_locking.c | 298 +++++++++++++++++++++++++++----------------------------- 1 file changed, 144 insertions(+), 154 deletions(-) diff --git a/check_locking.c b/check_locking.c index 30a658d0..42aa5141 100644 --- a/check_locking.c +++ b/check_locking.c @@ -87,162 +87,152 @@ static struct lock_info wine_lock_table[] = { }; static struct lock_info kernel_lock_table[] = { - {"__raw_spin_lock", LOCK, "spin_lock", 0, ret_any}, - {"__raw_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, - {"__raw_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, - - {"__spin_lock_nested", LOCK, "spin_lock", 0, ret_any}, - {"__spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, - {"__spin_lock", LOCK, "spin_lock", 0, ret_any}, - {"__spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, - - {"__spin_lock_irqsave_nested", LOCK, "spin_lock", 0, ret_any}, - {"__spin_lock_irqsave", LOCK, "spin_lock", 0, ret_any}, - {"__spin_unlock_irqrestore", UNLOCK, "spin_lock", 0, ret_any}, - {"__spin_lock_irq", LOCK, "spin_lock", 0, ret_any}, - {"__spin_unlock_irq", UNLOCK, "spin_lock", 0, ret_any}, - - {"__spin_trylock_bh", LOCK, "spin_lock", 0, ret_non_zero}, - {"__spin_lock_bh", LOCK, "spin_lock", 0, ret_any}, - {"__spin_unlock_bh", UNLOCK, "spin_lock", 0, ret_any}, - {"__raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"__raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"__read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"__read_lock", LOCK, "read_lock", 0, ret_any}, - {"__read_unlock", UNLOCK, "read_lock", 0, ret_any}, - - {"__read_lock_irqsave", LOCK, "read_lock", 0, ret_any}, - {"__read_unlock_irqrestore", UNLOCK, "read_lock", 0, ret_any}, - {"__read_lock_irq", LOCK, "read_lock", 0, ret_any}, - {"__read_unlock_irq", UNLOCK, "read_lock", 0, ret_any}, - - {"__read_lock_bh", LOCK, "read_lock", 0, ret_any}, - {"__read_unlock_bh", UNLOCK, "read_lock", 0, ret_any}, - {"__write_trylock", LOCK, "write_lock", 0, ret_non_zero}, - {"__raw_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, - {"__raw_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, - {"__write_lock", LOCK, "write_lock", 0, ret_any}, - {"__write_unlock", UNLOCK, "write_lock", 0, ret_any}, - - {"__write_lock_irqsave", LOCK, "write_lock", 0, ret_any}, - {"__write_unlock_irqrestore", UNLOCK, "write_lock", 0, ret_any}, - {"__write_lock_irq", LOCK, "write_lock", 0, ret_any}, - {"__write_unlock_irq", UNLOCK, "write_lock", 0, ret_any}, - - {"__write_lock_bh", LOCK, "write_lock", 0, ret_any}, - {"__write_unlock_bh", UNLOCK, "write_lock", 0, ret_any}, - - {"lock_kernel", LOCK, "BKL", NO_ARG, ret_any}, + {"lock_kernel", LOCK, "BKL", NO_ARG, ret_any}, {"unlock_kernel", UNLOCK, "BKL", NO_ARG, ret_any}, - {"_raw_spin_lock", LOCK, "spin_lock", 0, ret_any}, - {"_raw_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, - {"_raw_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, - {"_spin_lock_nested", LOCK, "spin_lock", 0, ret_any}, - {"_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, - {"_spin_lock", LOCK, "spin_lock", 0, ret_any}, - {"_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, - - {"_spin_lock_irqsave_nested", LOCK, "spin_lock", 0, ret_any}, - {"_spin_lock_irqsave", LOCK, "spin_lock", 0, ret_any}, - {"_spin_unlock_irqrestore", UNLOCK, "spin_lock", 0, ret_any}, - {"_spin_lock_irq", LOCK, "spin_lock", 0, ret_any}, - {"_spin_unlock_irq", UNLOCK, "spin_lock", 0, ret_any}, - - {"_spin_trylock_bh", LOCK, "spin_lock", 0, ret_non_zero}, - {"_spin_lock_bh", LOCK, "spin_lock", 0, ret_any}, - {"_spin_unlock_bh", UNLOCK, "spin_lock", 0, ret_any}, - {"generic__raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"_raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, - {"_read_lock", LOCK, "read_lock", 0, ret_any}, - {"_read_unlock", UNLOCK, "read_lock", 0, ret_any}, - - {"_read_lock_irqsave", LOCK, "read_lock", 0, ret_any}, - {"_read_unlock_irqrestore", UNLOCK, "read_lock", 0, ret_any}, - {"_read_lock_irq", LOCK, "read_lock", 0, ret_any}, - {"_read_unlock_irq", UNLOCK, "read_lock", 0, ret_any}, - - {"_read_lock_bh", LOCK, "read_lock", 0, ret_any}, - {"_read_unlock_bh", UNLOCK, "read_lock", 0, ret_any}, - {"_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, - {"_raw_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, - {"_write_lock", LOCK, "write_lock", 0, ret_any}, - {"_write_unlock", UNLOCK, "write_lock", 0, ret_any}, - - {"_write_lock_irqsave", LOCK, "write_lock", 0, ret_any}, - {"_write_unlock_irqrestore", UNLOCK, "write_lock", 0, ret_any}, - {"_write_lock_irq", LOCK, "write_lock", 0, ret_any}, - {"_write_unlock_irq", UNLOCK, "write_lock", 0, ret_any}, - - {"_write_lock_bh", LOCK, "write_lock", 0, ret_any}, - {"_write_unlock_bh", UNLOCK, "write_lock", 0, ret_any}, - {"down_trylock", LOCK, "sem", 0, ret_zero}, - {"down_interruptible", LOCK, "sem", 0, ret_zero}, - {"down", LOCK, "sem", 0, ret_any}, - {"up", UNLOCK, "sem", 0, ret_any}, - {"mutex_trylock", LOCK, "mutex", 0, ret_non_zero}, - {"mutex_lock_interruptible", LOCK, "mutex", 0, ret_zero}, - {"mutex_lock_interruptible_nested", LOCK, "mutex", 0, ret_zero}, - {"mutex_lock_killable", LOCK, "mutex", 0, ret_zero}, - {"mutex_lock_killable_nested", LOCK, "mutex", 0, ret_zero}, - {"mutex_lock", LOCK, "mutex", 0, ret_any}, - {"mutex_lock_nested", LOCK, "mutex", 0, ret_any}, - {"mutex_unlock", UNLOCK, "mutex", 0, ret_any}, - - {"raw_local_irq_disable", LOCK, "irq", NO_ARG, ret_any}, - {"raw_local_irq_enable", UNLOCK, "irq", NO_ARG, ret_any}, - {"__raw_local_irq_save", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"raw_local_irq_restore", UNLOCK, "irqsave", 0, ret_any}, - - {"__spin_lock_irqsave_nested", LOCK, "irqsave", 1, ret_any}, - {"__spin_lock_irqsave", LOCK, "irqsave", 1, ret_any}, - {"__spin_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"__spin_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"__spin_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"__read_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"__read_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"__read_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"__read_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"__write_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"__write_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"__write_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"__write_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"_spin_lock_irqsave_nested", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"_spin_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"_spin_lock_irqsave", LOCK, "irqsave", 1, ret_any}, - {"_spin_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"_spin_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"_spin_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"_read_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"_read_lock_irqsave", LOCK, "irqsave", 1, ret_any}, - {"_read_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"_read_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"_read_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"_write_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, - {"_write_lock_irqsave", LOCK, "irqsave", 1, ret_any}, - {"_write_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, - {"_write_lock_irq", LOCK, "irq", NO_ARG, ret_any}, - {"_write_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, - - {"__spin_trylock_bh", LOCK, "bottom_half", NO_ARG, ret_non_zero}, - {"__spin_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, - {"__spin_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, - {"__read_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, - {"__read_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, - {"__write_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + + {"_spin_lock", LOCK, "spin_lock", 0, ret_any}, + {"_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, + {"_spin_lock_nested", LOCK, "spin_lock", 0, ret_any}, + {"__spin_lock", LOCK, "spin_lock", 0, ret_any}, + {"__spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, + {"__spin_lock_nested", LOCK, "spin_lock", 0, ret_any}, + {"_raw_spin_lock", LOCK, "spin_lock", 0, ret_any}, + {"_raw_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, + {"__raw_spin_lock", LOCK, "spin_lock", 0, ret_any}, + {"__raw_spin_unlock", UNLOCK, "spin_lock", 0, ret_any}, + + {"_spin_lock_irq", LOCK, "spin_lock", 0, ret_any}, + {"_spin_unlock_irq", UNLOCK, "spin_lock", 0, ret_any}, + {"__spin_lock_irq", LOCK, "spin_lock", 0, ret_any}, + {"__spin_unlock_irq", UNLOCK, "spin_lock", 0, ret_any}, + {"_spin_lock_irqsave", LOCK, "spin_lock", 0, ret_any}, + {"_spin_unlock_irqrestore", UNLOCK, "spin_lock", 0, ret_any}, + {"__spin_lock_irqsave", LOCK, "spin_lock", 0, ret_any}, + {"__spin_unlock_irqrestore", UNLOCK, "spin_lock", 0, ret_any}, + {"_spin_lock_irqsave_nested", LOCK, "spin_lock", 0, ret_any}, + {"__spin_lock_irqsave_nested", LOCK, "spin_lock", 0, ret_any}, + {"_spin_lock_bh", LOCK, "spin_lock", 0, ret_any}, + {"_spin_unlock_bh", UNLOCK, "spin_lock", 0, ret_any}, + {"__spin_lock_bh", LOCK, "spin_lock", 0, ret_any}, + {"__spin_unlock_bh", UNLOCK, "spin_lock", 0, ret_any}, + + {"_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, + {"__spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, + {"_raw_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, + {"_spin_trylock_bh", LOCK, "spin_lock", 0, ret_non_zero}, + {"__spin_trylock_bh", LOCK, "spin_lock", 0, ret_non_zero}, + {"__raw_spin_trylock", LOCK, "spin_lock", 0, ret_non_zero}, + + {"_read_lock", LOCK, "read_lock", 0, ret_any}, + {"_read_unlock", UNLOCK, "read_lock", 0, ret_any}, + {"__read_lock", LOCK, "read_lock", 0, ret_any}, + {"__read_unlock", UNLOCK, "read_lock", 0, ret_any}, + {"_read_lock_irq", LOCK, "read_lock", 0, ret_any}, + {"_read_unlock_irq", UNLOCK, "read_lock", 0, ret_any}, + {"__read_lock_irq", LOCK, "read_lock", 0, ret_any}, + {"__read_unlock_irq", UNLOCK, "read_lock", 0, ret_any}, + {"_read_lock_irqsave", LOCK, "read_lock", 0, ret_any}, + {"_read_unlock_irqrestore", UNLOCK, "read_lock", 0, ret_any}, + {"__read_lock_irqsave", LOCK, "read_lock", 0, ret_any}, + {"__read_unlock_irqrestore", UNLOCK, "read_lock", 0, ret_any}, + {"_read_lock_bh", LOCK, "read_lock", 0, ret_any}, + {"_read_unlock_bh", UNLOCK, "read_lock", 0, ret_any}, + {"__read_lock_bh", LOCK, "read_lock", 0, ret_any}, + {"__read_unlock_bh", UNLOCK, "read_lock", 0, ret_any}, + + {"generic__raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, + {"_raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, + {"_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, + {"__raw_read_trylock", LOCK, "read_lock", 0, ret_non_zero}, + {"__read_trylock", LOCK, "read_lock", 0, ret_non_zero}, + + {"_write_lock", LOCK, "write_lock", 0, ret_any}, + {"_write_unlock", UNLOCK, "write_lock", 0, ret_any}, + {"__write_lock", LOCK, "write_lock", 0, ret_any}, + {"__write_unlock", UNLOCK, "write_lock", 0, ret_any}, + {"_write_lock_irq", LOCK, "write_lock", 0, ret_any}, + {"_write_unlock_irq", UNLOCK, "write_lock", 0, ret_any}, + {"__write_lock_irq", LOCK, "write_lock", 0, ret_any}, + {"__write_unlock_irq", UNLOCK, "write_lock", 0, ret_any}, + {"_write_lock_irqsave", LOCK, "write_lock", 0, ret_any}, + {"_write_unlock_irqrestore", UNLOCK, "write_lock", 0, ret_any}, + {"__write_lock_irqsave", LOCK, "write_lock", 0, ret_any}, + {"__write_unlock_irqrestore", UNLOCK, "write_lock", 0, ret_any}, + {"_write_lock_bh", LOCK, "write_lock", 0, ret_any}, + {"_write_unlock_bh", UNLOCK, "write_lock", 0, ret_any}, + {"__write_lock_bh", LOCK, "write_lock", 0, ret_any}, + {"__write_unlock_bh", UNLOCK, "write_lock", 0, ret_any}, + + {"_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, + {"_raw_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, + {"__write_trylock", LOCK, "write_lock", 0, ret_non_zero}, + {"__raw_write_trylock", LOCK, "write_lock", 0, ret_non_zero}, + + {"down", LOCK, "sem", 0, ret_any}, + {"up", UNLOCK, "sem", 0, ret_any}, + {"down_trylock", LOCK, "sem", 0, ret_zero}, + {"down_interruptible", LOCK, "sem", 0, ret_zero}, + + {"mutex_lock", LOCK, "mutex", 0, ret_any}, + {"mutex_unlock", UNLOCK, "mutex", 0, ret_any}, + {"mutex_lock_nested", LOCK, "mutex", 0, ret_any}, + + {"mutex_lock_interruptible", LOCK, "mutex", 0, ret_zero}, + {"mutex_lock_interruptible_nested", LOCK, "mutex", 0, ret_zero}, + {"mutex_lock_killable", LOCK, "mutex", 0, ret_zero}, + {"mutex_lock_killable_nested", LOCK, "mutex", 0, ret_zero}, + + {"mutex_trylock", LOCK, "mutex", 0, ret_non_zero}, + + {"raw_local_irq_disable", LOCK, "irq", NO_ARG, ret_any}, + {"raw_local_irq_enable", UNLOCK, "irq", NO_ARG, ret_any}, + {"_spin_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"_spin_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + {"__spin_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"__spin_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + {"_read_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"_read_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + {"__read_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"__read_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + {"_write_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"_write_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + {"__write_lock_irq", LOCK, "irq", NO_ARG, ret_any}, + {"__write_unlock_irq", UNLOCK, "irq", NO_ARG, ret_any}, + + {"__raw_local_irq_save", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"raw_local_irq_restore", UNLOCK, "irqsave", 0, ret_any}, + {"_spin_lock_irqsave_nested", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"_spin_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"_spin_lock_irqsave", LOCK, "irqsave", 1, ret_any}, + {"_spin_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + {"__spin_lock_irqsave_nested", LOCK, "irqsave", 1, ret_any}, + {"__spin_lock_irqsave", LOCK, "irqsave", 1, ret_any}, + {"__spin_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + {"_read_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"_read_lock_irqsave", LOCK, "irqsave", 1, ret_any}, + {"_read_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + {"__read_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"__read_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + {"_write_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"_write_lock_irqsave", LOCK, "irqsave", 1, ret_any}, + {"_write_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + {"__write_lock_irqsave", LOCK, "irqsave", RETURN_VAL, ret_any}, + {"__write_unlock_irqrestore", UNLOCK, "irqsave", 1, ret_any}, + + {"_spin_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + {"_spin_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"__spin_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + {"__spin_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"_read_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + {"_read_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"__read_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + {"__read_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"_write_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, + {"_write_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"__write_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, {"__write_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, - {"_spin_trylock_bh", LOCK, "bottom_half", NO_ARG, ret_non_zero}, - {"_spin_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, - {"_spin_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, - {"_read_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, - {"_read_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, - {"_write_lock_bh", LOCK, "bottom_half", NO_ARG, ret_any}, - {"_write_unlock_bh", UNLOCK, "bottom_half", NO_ARG, ret_any}, + {"_spin_trylock_bh", LOCK, "bottom_half", NO_ARG, ret_non_zero}, + {"__spin_trylock_bh", LOCK, "bottom_half", NO_ARG, ret_non_zero}, }; static struct lock_info *lock_table; -- 2.11.4.GIT