tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
[linux-2.6-microblaze.git] / mm / slab.c
index d7c8da9..dcc55e7 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3635,6 +3635,26 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t flags,
 EXPORT_SYMBOL(__kmalloc_node_track_caller);
 #endif /* CONFIG_NUMA */
 
+void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct page *page)
+{
+       struct kmem_cache *cachep;
+       unsigned int objnr;
+       void *objp;
+
+       kpp->kp_ptr = object;
+       kpp->kp_page = page;
+       cachep = page->slab_cache;
+       kpp->kp_slab_cache = cachep;
+       objp = object - obj_offset(cachep);
+       kpp->kp_data_offset = obj_offset(cachep);
+       page = virt_to_head_page(objp);
+       objnr = obj_to_index(cachep, page, objp);
+       objp = index_to_obj(cachep, page, objnr);
+       kpp->kp_objp = objp;
+       if (DEBUG && cachep->flags & SLAB_STORE_USER)
+               kpp->kp_ret = *dbg_userword(cachep, objp);
+}
+
 /**
  * __do_kmalloc - allocate memory
  * @size: how many bytes of memory are required.