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: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
This commit is contained in:
Родитель
c0927a7a53
Коммит
c120c98486
|
@ -271,7 +271,7 @@ char *tomoyo_init_log(struct tomoyo_request_info *r, int len, const char *fmt,
|
|||
/* +18 is for " symlink.target=\"%s\"" */
|
||||
len += 18 + strlen(symlink);
|
||||
}
|
||||
len = tomoyo_round2(len);
|
||||
len = kmalloc_size_roundup(len);
|
||||
buf = kzalloc(len, GFP_NOFS);
|
||||
if (!buf)
|
||||
goto out;
|
||||
|
@ -382,12 +382,12 @@ void tomoyo_write_log2(struct tomoyo_request_info *r, int len, const char *fmt,
|
|||
goto out;
|
||||
}
|
||||
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.
|
||||
* 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);
|
||||
if (tomoyo_memory_quota[TOMOYO_MEMORY_AUDIT] &&
|
||||
tomoyo_memory_used[TOMOYO_MEMORY_AUDIT] + entry->size >=
|
||||
|
|
|
@ -2094,7 +2094,7 @@ int tomoyo_supervisor(struct tomoyo_request_info *r, const char *fmt, ...)
|
|||
tomoyo_add_entry(r->domain, entry.query);
|
||||
goto out;
|
||||
}
|
||||
len = tomoyo_round2(entry.query_len);
|
||||
len = kmalloc_size_roundup(entry.query_len);
|
||||
entry.domain = r->domain;
|
||||
spin_lock(&tomoyo_query_list_lock);
|
||||
if (tomoyo_memory_quota[TOMOYO_MEMORY_QUERY] &&
|
||||
|
|
|
@ -1276,50 +1276,6 @@ static inline struct tomoyo_policy_namespace *tomoyo_current_namespace(void)
|
|||
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.
|
||||
* @pos: the &struct list_head to use as a loop cursor.
|
||||
|
|
Загрузка…
Ссылка в новой задаче