Let the compiler verify __must_hold(), __guarded_by() etc. Suppress the warnings reported for loop_global_{,un}_lock*() by adding a __context_unsafe() annotation. Both __context_unsafe() annotations will be removed by a later patch. Signed-off-by: Bart Van Assche --- drivers/block/Makefile | 2 ++ drivers/block/loop.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/drivers/block/Makefile b/drivers/block/Makefile index 2d8096eb8cdf..d4555949cc3c 100644 --- a/drivers/block/Makefile +++ b/drivers/block/Makefile @@ -6,6 +6,8 @@ # Rewritten to use lists instead of if-statements. # +CONTEXT_ANALYSIS_loop.o := y + # needed for trace events ccflags-y += -I$(src) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 4315c36d4042..638d97293a79 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -108,6 +108,8 @@ static DEFINE_MUTEX(loop_validate_mutex); * loop_configure()/loop_change_fd()/__loop_clr_fd() calls. */ static int loop_global_lock_killable(struct loop_device *lo, bool global) + __cond_acquires(0, &lo->lo_mutex) + __context_unsafe(conditional locking) { int err; @@ -129,6 +131,8 @@ static int loop_global_lock_killable(struct loop_device *lo, bool global) * @global: true if @lo was about to bind another "struct loop_device", false otherwise */ static void loop_global_unlock(struct loop_device *lo, bool global) + __releases(&lo->lo_mutex) + __context_unsafe(conditional locking) { mutex_unlock(&lo->lo_mutex); if (global)