projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7d5775d
)
vsprintf: Use non-atomic bitmap API when applicable
author
Christophe JAILLET
<christophe.jaillet@wanadoo.fr>
Sat, 27 Nov 2021 14:27:35 +0000
(15:27 +0100)
committer
Petr Mladek
<pmladek@suse.com>
Mon, 6 Dec 2021 12:35:28 +0000
(13:35 +0100)
The 'set' bitmap is local to this function. No concurrent access to it is
possible.
So prefer the non-atomic '__[set|clear]_bit()' function to save a few
cycles.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link:
https://lore.kernel.org/r/1abf81a5e509d372393bd22041eed4ebc07ef9f7.1638023178.git.christophe.jaillet@wanadoo.fr
lib/vsprintf.c
patch
|
blob
|
history
diff --git
a/lib/vsprintf.c
b/lib/vsprintf.c
index 58d5e567f836831b94ca20c534a105d56158d1ce..53d6081f9e8b9bc4da356979e56e9cce7302f788 100644
(file)
--- a/
lib/vsprintf.c
+++ b/
lib/vsprintf.c
@@
-3564,7
+3564,7
@@
int vsscanf(const char *buf, const char *fmt, va_list args)
++fmt;
for ( ; *fmt && *fmt != ']'; ++fmt, ++len)
- set_bit((u8)*fmt, set);
+
__
set_bit((u8)*fmt, set);
/* no ']' or no character set found */
if (!*fmt || !len)
@@
-3574,7
+3574,7
@@
int vsscanf(const char *buf, const char *fmt, va_list args)
if (negate) {
bitmap_complement(set, set, 256);
/* exclude null '\0' byte */
- clear_bit(0, set);
+
__
clear_bit(0, set);
}
/* match must be non-empty */