mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 17:14:14 +08:00
mm: slub: introduce virt_to_obj function
virt_to_obj takes kmem_cache address, address of slab page, address x pointing somewhere inside slab object, and returns address of the beginning of object. Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com> Acked-by: Christoph Lameter <cl@linux.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Konstantin Serebryany <kcc@google.com> Cc: Dmitry Chernenkov <dmitryc@google.com> Signed-off-by: Andrey Konovalov <adech.fo@gmail.com> Cc: Yuri Gribov <tetra2005@gmail.com> Cc: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Sasha Levin <sasha.levin@oracle.com> Cc: Christoph Lameter <cl@linux.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b8c73fc249
commit
912f5fbf1d
@ -110,4 +110,20 @@ static inline void sysfs_slab_remove(struct kmem_cache *s)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* virt_to_obj - returns address of the beginning of object.
|
||||
* @s: object's kmem_cache
|
||||
* @slab_page: address of slab page
|
||||
* @x: address within object memory range
|
||||
*
|
||||
* Returns address of the beginning of object
|
||||
*/
|
||||
static inline void *virt_to_obj(struct kmem_cache *s,
|
||||
const void *slab_page,
|
||||
const void *x)
|
||||
{
|
||||
return (void *)x - ((x - slab_page) % s->size);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_SLUB_DEF_H */
|
||||
|
Loading…
Reference in New Issue
Block a user