diff mbox series

xfrm/compat: Remove use of kmalloc_track_caller

Message ID 20201101220845.2391858-1-adelva@google.com
State New
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,
-- 
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
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;