projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4ca59b1
)
kernel/umh.c: optimize 'proc_cap_handler()'
author
Christophe JAILLET
<christophe.jaillet@wanadoo.fr>
Fri, 17 Nov 2017 23:27:32 +0000
(15:27 -0800)
committer
Linus Torvalds
<torvalds@linux-foundation.org>
Sat, 18 Nov 2017 00:10:01 +0000
(16:10 -0800)
If 'write' is 0, we can avoid a call to spin_lock/spin_unlock.
Link:
http://lkml.kernel.org/r/20171020193331.7233-1-christophe.jaillet@wanadoo.fr
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Luis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/umh.c
patch
|
blob
|
history
diff --git
a/kernel/umh.c
b/kernel/umh.c
index 6ff9905250ff0563713c64585a74e888de70f343..18e5fa4b0e71913087585429e561d9eb4e30b73d 100644
(file)
--- a/
kernel/umh.c
+++ b/
kernel/umh.c
@@
-537,14
+537,14
@@
static int proc_cap_handler(struct ctl_table *table, int write,
/*
* Drop everything not in the new_cap (but don't add things)
*/
- spin_lock(&umh_sysctl_lock);
if (write) {
+ spin_lock(&umh_sysctl_lock);
if (table->data == CAP_BSET)
usermodehelper_bset = cap_intersect(usermodehelper_bset, new_cap);
if (table->data == CAP_PI)
usermodehelper_inheritable = cap_intersect(usermodehelper_inheritable, new_cap);
+ spin_unlock(&umh_sysctl_lock);
}
- spin_unlock(&umh_sysctl_lock);
return 0;
}