mm/slab: simplify create_kmalloc_cache() args and make it static
In the slab variant of kmem_cache_init(), call new_kmalloc_cache() instead of initialising the kmalloc_caches array directly. With this, create_kmalloc_cache() is now only called from new_kmalloc_cache() in the same file, so make it static. In addition, the useroffset argument is always 0 while usersize is the same as size. Remove them. Link: https://lkml.kernel.org/r/20230612153201.554742-4-catalin.marinas@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Vlastimil Babka <vbabka@suse.cz> Tested-by: Isaac J. Manjarres <isaacmanjarres@google.com> Cc: Alasdair Kergon <agk@redhat.com> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Christoph Hellwig <hch@lst.de> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Jerry Snitselaar <jsnitsel@redhat.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Jonathan Cameron <jic23@kernel.org> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Lars-Peter Clausen <lars@metafoo.de> Cc: Logan Gunthorpe <logang@deltatee.com> Cc: Marc Zyngier <maz@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: Mike Snitzer <snitzer@kernel.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Robin Murphy <robin.murphy@arm.com> Cc: Saravana Kannan <saravanak@google.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Родитель
8c57da28dc
Коммит
0c474d31a6
|
@ -1240,11 +1240,7 @@ void __init kmem_cache_init(void)
|
|||
* Initialize the caches that provide memory for the kmem_cache_node
|
||||
* structures first. Without this, further allocations will bug.
|
||||
*/
|
||||
kmalloc_caches[KMALLOC_NORMAL][INDEX_NODE] = create_kmalloc_cache(
|
||||
kmalloc_info[INDEX_NODE].name[KMALLOC_NORMAL],
|
||||
kmalloc_info[INDEX_NODE].size,
|
||||
ARCH_KMALLOC_FLAGS, 0,
|
||||
kmalloc_info[INDEX_NODE].size);
|
||||
new_kmalloc_cache(INDEX_NODE, KMALLOC_NORMAL, ARCH_KMALLOC_FLAGS);
|
||||
slab_state = PARTIAL_NODE;
|
||||
setup_kmalloc_cache_index_table();
|
||||
|
||||
|
|
|
@ -255,9 +255,8 @@ gfp_t kmalloc_fix_flags(gfp_t flags);
|
|||
/* Functions provided by the slab allocators */
|
||||
int __kmem_cache_create(struct kmem_cache *, slab_flags_t flags);
|
||||
|
||||
struct kmem_cache *create_kmalloc_cache(const char *name, unsigned int size,
|
||||
slab_flags_t flags, unsigned int useroffset,
|
||||
unsigned int usersize);
|
||||
void __init new_kmalloc_cache(int idx, enum kmalloc_cache_type type,
|
||||
slab_flags_t flags);
|
||||
extern void create_boot_cache(struct kmem_cache *, const char *name,
|
||||
unsigned int size, slab_flags_t flags,
|
||||
unsigned int useroffset, unsigned int usersize);
|
||||
|
|
|
@ -658,17 +658,16 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name,
|
|||
s->refcount = -1; /* Exempt from merging for now */
|
||||
}
|
||||
|
||||
struct kmem_cache *__init create_kmalloc_cache(const char *name,
|
||||
unsigned int size, slab_flags_t flags,
|
||||
unsigned int useroffset, unsigned int usersize)
|
||||
static struct kmem_cache *__init create_kmalloc_cache(const char *name,
|
||||
unsigned int size,
|
||||
slab_flags_t flags)
|
||||
{
|
||||
struct kmem_cache *s = kmem_cache_zalloc(kmem_cache, GFP_NOWAIT);
|
||||
|
||||
if (!s)
|
||||
panic("Out of memory when creating slab %s\n", name);
|
||||
|
||||
create_boot_cache(s, name, size, flags | SLAB_KMALLOC, useroffset,
|
||||
usersize);
|
||||
create_boot_cache(s, name, size, flags | SLAB_KMALLOC, 0, size);
|
||||
list_add(&s->list, &slab_caches);
|
||||
s->refcount = 1;
|
||||
return s;
|
||||
|
@ -863,7 +862,7 @@ void __init setup_kmalloc_cache_index_table(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void __init
|
||||
void __init
|
||||
new_kmalloc_cache(int idx, enum kmalloc_cache_type type, slab_flags_t flags)
|
||||
{
|
||||
if ((KMALLOC_RECLAIM != KMALLOC_NORMAL) && (type == KMALLOC_RECLAIM)) {
|
||||
|
@ -880,8 +879,7 @@ new_kmalloc_cache(int idx, enum kmalloc_cache_type type, slab_flags_t flags)
|
|||
|
||||
kmalloc_caches[type][idx] = create_kmalloc_cache(
|
||||
kmalloc_info[idx].name[type],
|
||||
kmalloc_info[idx].size, flags, 0,
|
||||
kmalloc_info[idx].size);
|
||||
kmalloc_info[idx].size, flags);
|
||||
|
||||
/*
|
||||
* If CONFIG_MEMCG_KMEM is enabled, disable cache merging for
|
||||
|
|
Загрузка…
Ссылка в новой задаче