diff mbox series

xfrm/compat: Remove use of kmalloc_track_caller

Message ID 20201101220845.2391858-1-adelva@google.com (mailing list archive)
State Not Applicable
Delegated to: Netdev Maintainers
Headers show
Series xfrm/compat: Remove use of kmalloc_track_caller | expand

Commit Message

Alistair Delva Nov. 1, 2020, 10:08 p.m. UTC
The __kmalloc_track_caller symbol is not exported if SLUB/SLOB are
enabled instead of SLAB, which breaks the build on such configs when
CONFIG_XFRM_USER_COMPAT=m.

ERROR: "__kmalloc_track_caller" [net/xfrm/xfrm_compat.ko] undefined!

Other users of this symbol are 'bool' options, but changing this to
bool would require XFRM_USER to be built in as well, which doesn't
seem worth it. Go back to kmalloc().

Fixes: 96392ee5a13b9 ("xfrm/compat: Translate 32-bit user_policy from sockptr")
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Maciej Żenczykowski <maze@google.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Alistair Delva <adelva@google.com>
---
 net/xfrm/xfrm_compat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dmitry Safonov Nov. 1, 2020, 11:34 p.m. UTC | #1
On 11/1/20 10:08 PM, Alistair Delva wrote:
> The __kmalloc_track_caller symbol is not exported if SLUB/SLOB are
> enabled instead of SLAB, which breaks the build on such configs when
> CONFIG_XFRM_USER_COMPAT=m.
> 
> ERROR: "__kmalloc_track_caller" [net/xfrm/xfrm_compat.ko] undefined!
> 
> Other users of this symbol are 'bool' options, but changing this to
> bool would require XFRM_USER to be built in as well, which doesn't
> seem worth it. Go back to kmalloc().
> 
> Fixes: 96392ee5a13b9 ("xfrm/compat: Translate 32-bit user_policy from sockptr")
> Cc: Dmitry Safonov <0x7f454c46@gmail.com>
> Cc: Maciej Żenczykowski <maze@google.com>
> Cc: Steffen Klassert <steffen.klassert@secunet.com>
> Signed-off-by: Alistair Delva <adelva@google.com>

Reviewed-by: Dmitry Safonov <0x7f454c46@gmail.com>

Thank you!

--
          Dmitry
Herbert Xu Nov. 2, 2020, 3:38 a.m. UTC | #2
On Sun, Nov 01, 2020 at 02:08:45PM -0800, Alistair Delva wrote:
> The __kmalloc_track_caller symbol is not exported if SLUB/SLOB are
> enabled instead of SLAB, which breaks the build on such configs when
> CONFIG_XFRM_USER_COMPAT=m.
> 
> ERROR: "__kmalloc_track_caller" [net/xfrm/xfrm_compat.ko] undefined!

Is this with a recent kernel? Because they should be exported:

commit fd7cb5753ef49964ea9db5121c3fc9a4ec21ed8e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Mon Mar 23 15:49:00 2020 +0100

    mm/sl[uo]b: export __kmalloc_track(_node)_caller

Cheers,
Alistair Delva Nov. 2, 2020, 4:08 a.m. UTC | #3
On Sun, Nov 1, 2020 at 7:39 PM Herbert Xu <herbert@gondor.apana.org.au> wrote:
>> On Sun, Nov 01, 2020 at 02:08:45PM -0800, Alistair Delva wrote:
> > The __kmalloc_track_caller symbol is not exported if SLUB/SLOB are
> > enabled instead of SLAB, which breaks the build on such configs when
> > CONFIG_XFRM_USER_COMPAT=m.
> >
> > ERROR: "__kmalloc_track_caller" [net/xfrm/xfrm_compat.ko] undefined!
>
> Is this with a recent kernel? Because they should be exported:
>
> commit fd7cb5753ef49964ea9db5121c3fc9a4ec21ed8e
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date:   Mon Mar 23 15:49:00 2020 +0100
>
>     mm/sl[uo]b: export __kmalloc_track(_node)_caller

Whoops, you're right - I confused two allmodconfig issues when
backporting. Sorry for the noise.

> Cheers,
> --
> Email: Herbert Xu <herbert@gondor.apana.org.au>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
>
> --
> To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@android.com.
>
diff mbox series

Patch

diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index e28f0c9ecd6a..c1dee0696dfb 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -585,7 +585,7 @@  static int xfrm_user_policy_compat(u8 **pdata32, int optlen)
 	if (optlen < sizeof(*p))
 		return -EINVAL;
 
-	data64 = kmalloc_track_caller(optlen + 4, GFP_USER | __GFP_NOWARN);
+	data64 = kmalloc(optlen + 4, GFP_USER | __GFP_NOWARN);
 	if (!data64)
 		return -ENOMEM;