projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b8c73fc
)
mm: slub: introduce virt_to_obj function
author
Andrey Ryabinin
<
[email protected]
>
Fri, 13 Feb 2015 22:39:31 +0000
(14:39 -0800)
committer
Linus Torvalds
<
[email protected]
>
Sat, 14 Feb 2015 05:21:41 +0000
(21:21 -0800)
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 <
[email protected]
>
Acked-by: Christoph Lameter <
[email protected]
>
Cc: Dmitry Vyukov <
[email protected]
>
Cc: Konstantin Serebryany <
[email protected]
>
Cc: Dmitry Chernenkov <
[email protected]
>
Signed-off-by: Andrey Konovalov <
[email protected]
>
Cc: Yuri Gribov <
[email protected]
>
Cc: Konstantin Khlebnikov <
[email protected]
>
Cc: Sasha Levin <
[email protected]
>
Cc: Christoph Lameter <
[email protected]
>
Cc: Joonsoo Kim <
[email protected]
>
Cc: Dave Hansen <
[email protected]
>
Cc: Andi Kleen <
[email protected]
>
Cc: Ingo Molnar <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc: "H. Peter Anvin" <
[email protected]
>
Cc: Pekka Enberg <
[email protected]
>
Cc: David Rientjes <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
include/linux/slub_def.h
patch
|
blob
|
history
diff --git
a/include/linux/slub_def.h
b/include/linux/slub_def.h
index 9abf04ed0999cecb3c346422f21f35fd4ff971d0..db7d5de00c5fb79b74a0a1f448bc20a69054d0fe 100644
(file)
--- a/
include/linux/slub_def.h
+++ b/
include/linux/slub_def.h
@@
-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 */