diff options
author | Michal Marek <mmarek@suse.cz> | 2013-02-25 21:50:05 +0100 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2013-02-25 21:51:57 +0100 |
commit | e3900e74f26fc924c8e9e2a922bd40369b0bb517 (patch) | |
tree | 6e868575d346032ba9408f350c6e5369e0e52b0d /Documentation/sparse.txt | |
parent | kbuild: Fix missing '\n' for NEW symbols in yes "" | make oldconfig >conf.new (diff) | |
parent | Merge branch 'yem-kconfig-rc-fixes' of git://gitorious.org/linux-kconfig/linux-kconfig into kbuild/rc-fixes (diff) | |
download | linux-dev-e3900e74f26fc924c8e9e2a922bd40369b0bb517.tar.xz linux-dev-e3900e74f26fc924c8e9e2a922bd40369b0bb517.zip |
Merge branch 'kbuild/rc-fixes' into kbuild/kconfig
There is one kconfig fix in the rc-fixes branch that I forgot to submit
for 3.8, so let's add it to the kconfig branch for 3.9-rc1.
Diffstat (limited to 'Documentation/sparse.txt')
-rw-r--r-- | Documentation/sparse.txt | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/sparse.txt b/Documentation/sparse.txt index 4909d4116356..eceab1308a8c 100644 --- a/Documentation/sparse.txt +++ b/Documentation/sparse.txt @@ -49,6 +49,24 @@ be generated without __CHECK_ENDIAN__. __bitwise - noisy stuff; in particular, __le*/__be* are that. We really don't want to drown in noise unless we'd explicitly asked for it. +Using sparse for lock checking +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following macros are undefined for gcc and defined during a sparse +run to use the "context" tracking feature of sparse, applied to +locking. These annotations tell sparse when a lock is held, with +regard to the annotated function's entry and exit. + +__must_hold - The specified lock is held on function entry and exit. + +__acquires - The specified lock is held on function exit, but not entry. + +__releases - The specified lock is held on function entry, but not exit. + +If the function enters and exits without the lock held, acquiring and +releasing the lock inside the function in a balanced way, no +annotation is needed. The tree annotations above are for cases where +sparse would otherwise report a context imbalance. Getting sparse ~~~~~~~~~~~~~~ |