Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966718AbbBCRsi (ORCPT ); Tue, 3 Feb 2015 12:48:38 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:53131 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966419AbbBCRnk (ORCPT ); Tue, 3 Feb 2015 12:43:40 -0500 X-AuditID: cbfec7f5-b7fc86d0000066b7-91-54d108327132 From: Andrey Ryabinin To: linux-kernel@vger.kernel.org Cc: Andrey Ryabinin , Dmitry Vyukov , Konstantin Serebryany , Dmitry Chernenkov , Andrey Konovalov , Yuri Gribov , Konstantin Khlebnikov , Sasha Levin , Christoph Lameter , Joonsoo Kim , Andrew Morton , Dave Hansen , Andi Kleen , x86@kernel.org, linux-mm@kvack.org, Pekka Enberg , David Rientjes Subject: [PATCH v11 06/19] mm: slub: introduce virt_to_obj function. Date: Tue, 03 Feb 2015 20:42:59 +0300 Message-id: <1422985392-28652-7-git-send-email-a.ryabinin@samsung.com> X-Mailer: git-send-email 2.2.2 In-reply-to: <1422985392-28652-1-git-send-email-a.ryabinin@samsung.com> References: <1404905415-9046-1-git-send-email-a.ryabinin@samsung.com> <1422985392-28652-1-git-send-email-a.ryabinin@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsVy+t/xK7pGHBdDDOavtLLY9usRm8XvvTNZ LeasX8NmceTad3aL69/eMFp8evmA0eL5w4fsFhMetrFbrOxuZrPY/uwtk8XKzgesFpd3zWGz uLfmP6tF2+d/QGLJRiaLxUduM1u8ezaZ2eLHhsesDkIe83d+ZPTYOesuu8eCTaUei/e8ZPLY tKqTzWPTp0nsHl1vrzB5nJjxm8XjyZXpTB4fn95i8ejbsorR4/MmuQCeKC6blNSczLLUIn27 BK6MXc9mMxas5ah41raXsYHxOVsXIyeHhICJxNQLE6FsMYkL99YD2VwcQgJLGSVOTrjIAuH0 MUkc2P2BEaSKTUBP4t+s7WAdIgIKEpt7n7GCFDELfGaReNx1DSwhLOAiMfXIZ3YQm0VAVeLG nXtgcV4BN4n/vx8C2RxA6+QkLnyMBwlzCrhL7Ot/xgixrIlR4s3iFuYJjLwLGBlWMYqmliYX FCel5xrpFSfmFpfmpesl5+duYoTEwtcdjEuPWR1iFOBgVOLh1Xh3IUSINbGsuDL3EKMEB7OS CO+e30Ah3pTEyqrUovz4otKc1OJDjEwcnFINjCpTLpRn9SdUqRu56avsnLFhxqEEc/71MXNf bvRaEm5+6sQqfo3vd1+ohdwpFXLc2mN2dG7gdd5pTzcr3fpYdWjNQdecloXMshVMM6MeiJ+p eLZ9U/765/ZTlZ+Vtu+wnPJ0166GsyIcJRat9So79iRWp8++oraaWdCtsPaEsCdjoemBD5Fy pUosxRmJhlrMRcWJAA+HMDBjAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1276 Lines: 43 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 Acked-by: Christoph Lameter --- include/linux/slub_def.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 9abf04e..db7d5de 100644 --- 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 */ -- 2.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/