Commit c120c984 authored by Vlastimil Babka's avatar Vlastimil Babka Committed by Tetsuo Handa

tomoyo: replace tomoyo_round2() with kmalloc_size_roundup()

It seems tomoyo has had its own implementation of what
kmalloc_size_roundup() does today. Remove the function tomoyo_round2()
and replace it with kmalloc_size_roundup(). It provides more accurate
results and doesn't contain a while loop.
Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
parent c0927a7a
...@@ -271,7 +271,7 @@ char *tomoyo_init_log(struct tomoyo_request_info *r, int len, const char *fmt, ...@@ -271,7 +271,7 @@ char *tomoyo_init_log(struct tomoyo_request_info *r, int len, const char *fmt,
/* +18 is for " symlink.target=\"%s\"" */ /* +18 is for " symlink.target=\"%s\"" */
len += 18 + strlen(symlink); len += 18 + strlen(symlink);
} }
len = tomoyo_round2(len); len = kmalloc_size_roundup(len);
buf = kzalloc(len, GFP_NOFS); buf = kzalloc(len, GFP_NOFS);
if (!buf) if (!buf)
goto out; goto out;
...@@ -382,12 +382,12 @@ void tomoyo_write_log2(struct tomoyo_request_info *r, int len, const char *fmt, ...@@ -382,12 +382,12 @@ void tomoyo_write_log2(struct tomoyo_request_info *r, int len, const char *fmt,
goto out; goto out;
} }
entry->log = buf; entry->log = buf;
len = tomoyo_round2(strlen(buf) + 1); len = kmalloc_size_roundup(strlen(buf) + 1);
/* /*
* The entry->size is used for memory quota checks. * The entry->size is used for memory quota checks.
* Don't go beyond strlen(entry->log). * Don't go beyond strlen(entry->log).
*/ */
entry->size = len + tomoyo_round2(sizeof(*entry)); entry->size = len + kmalloc_size_roundup(sizeof(*entry));
spin_lock(&tomoyo_log_lock); spin_lock(&tomoyo_log_lock);
if (tomoyo_memory_quota[TOMOYO_MEMORY_AUDIT] && if (tomoyo_memory_quota[TOMOYO_MEMORY_AUDIT] &&
tomoyo_memory_used[TOMOYO_MEMORY_AUDIT] + entry->size >= tomoyo_memory_used[TOMOYO_MEMORY_AUDIT] + entry->size >=
......
...@@ -2094,7 +2094,7 @@ int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...) ...@@ -2094,7 +2094,7 @@ int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...)
tomoyo_add_entry(r->domain, entry.query); tomoyo_add_entry(r->domain, entry.query);
goto out; goto out;
} }
len = tomoyo_round2(entry.query_len); len = kmalloc_size_roundup(entry.query_len);
entry.domain = r->domain; entry.domain = r->domain;
spin_lock(&tomoyo_query_list_lock); spin_lock(&tomoyo_query_list_lock);
if (tomoyo_memory_quota[TOMOYO_MEMORY_QUERY] && if (tomoyo_memory_quota[TOMOYO_MEMORY_QUERY] &&
......
...@@ -1276,50 +1276,6 @@ static inline struct tomoyo_policy_namespace *tomoyo_current_namespace(void) ...@@ -1276,50 +1276,6 @@ static inline struct tomoyo_policy_namespace *tomoyo_current_namespace(void)
return tomoyo_domain()->ns; return tomoyo_domain()->ns;
} }
#if defined(CONFIG_SLOB)
/**
* tomoyo_round2 - Round up to power of 2 for calculating memory usage.
*
* @size: Size to be rounded up.
*
* Returns @size.
*
* Since SLOB does not round up, this function simply returns @size.
*/
static inline int tomoyo_round2(size_t size)
{
return size;
}
#else
/**
* tomoyo_round2 - Round up to power of 2 for calculating memory usage.
*
* @size: Size to be rounded up.
*
* Returns rounded size.
*
* Strictly speaking, SLAB may be able to allocate (e.g.) 96 bytes instead of
* (e.g.) 128 bytes.
*/
static inline int tomoyo_round2(size_t size)
{
#if PAGE_SIZE == 4096
size_t bsize = 32;
#else
size_t bsize = 64;
#endif
if (!size)
return 0;
while (size > bsize)
bsize <<= 1;
return bsize;
}
#endif
/** /**
* list_for_each_cookie - iterate over a list with cookie. * list_for_each_cookie - iterate over a list with cookie.
* @pos: the &struct list_head to use as a loop cursor. * @pos: the &struct list_head to use as a loop cursor.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment