Merge tag 'slab-for-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab
Pull slab fix from Vlastimil Babka: - Stable fix adding zero initialization of slab->obj_ext to prevent crashes with allocation profiling (Suren Baghdasaryan) * tag 'slab-for-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: slab: ensure slab->obj_exts is clear in a newly allocated slab page
This commit is contained in:
@@ -1973,6 +1973,11 @@ static inline void handle_failed_objexts_alloc(unsigned long obj_exts,
|
||||
#define OBJCGS_CLEAR_MASK (__GFP_DMA | __GFP_RECLAIMABLE | \
|
||||
__GFP_ACCOUNT | __GFP_NOFAIL)
|
||||
|
||||
static inline void init_slab_obj_exts(struct slab *slab)
|
||||
{
|
||||
slab->obj_exts = 0;
|
||||
}
|
||||
|
||||
int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s,
|
||||
gfp_t gfp, bool new_slab)
|
||||
{
|
||||
@@ -2058,6 +2063,10 @@ static inline bool need_slab_obj_ext(void)
|
||||
|
||||
#else /* CONFIG_SLAB_OBJ_EXT */
|
||||
|
||||
static inline void init_slab_obj_exts(struct slab *slab)
|
||||
{
|
||||
}
|
||||
|
||||
static int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s,
|
||||
gfp_t gfp, bool new_slab)
|
||||
{
|
||||
@@ -2637,6 +2646,7 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags, int node)
|
||||
slab->objects = oo_objects(oo);
|
||||
slab->inuse = 0;
|
||||
slab->frozen = 0;
|
||||
init_slab_obj_exts(slab);
|
||||
|
||||
account_slab(slab, oo_order(oo), s, flags);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user