diff mbox series

mm: remove __krealloc

Message ID 20191212223442.22141-1-fw@strlen.de (mailing list archive)
State New, archived
Headers show
Series mm: remove __krealloc | expand

Commit Message

Florian Westphal Dec. 12, 2019, 10:34 p.m. UTC
Since 5.5-rc1 the last user of this function is gone, so remove the
functionality.

See commit
2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
for details.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 include/linux/slab.h                    |  1 -
 mm/slab_common.c                        | 22 ----------------------
 scripts/coccinelle/free/devm_free.cocci |  4 ----
 3 files changed, 27 deletions(-)

Comments

David Rientjes Dec. 12, 2019, 11 p.m. UTC | #1
On Thu, 12 Dec 2019, Florian Westphal wrote:

> Since 5.5-rc1 the last user of this function is gone, so remove the
> functionality.
> 
> See commit
> 2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
> for details.
> 
> Signed-off-by: Florian Westphal <fw@strlen.de>

So this also means that we can fold __do_krealloc() into krealloc()?
Florian Westphal Dec. 12, 2019, 11:18 p.m. UTC | #2
David Rientjes <rientjes@google.com> wrote:
> On Thu, 12 Dec 2019, Florian Westphal wrote:
> 
> > Since 5.5-rc1 the last user of this function is gone, so remove the
> > functionality.
> > 
> > See commit
> > 2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
> > for details.
> > 
> > Signed-off-by: Florian Westphal <fw@strlen.de>
> 
> So this also means that we can fold __do_krealloc() into krealloc()?

I would leave that to compiler but if you prefer this I can respin.
David Hildenbrand Dec. 13, 2019, 10:17 a.m. UTC | #3
On 12.12.19 23:34, Florian Westphal wrote:
> Since 5.5-rc1 the last user of this function is gone, so remove the
> functionality.
> 
> See commit
> 2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
> for details.
> 
> Signed-off-by: Florian Westphal <fw@strlen.de>
> ---
>  include/linux/slab.h                    |  1 -
>  mm/slab_common.c                        | 22 ----------------------
>  scripts/coccinelle/free/devm_free.cocci |  4 ----
>  3 files changed, 27 deletions(-)
> 
> diff --git a/include/linux/slab.h b/include/linux/slab.h
> index 877a95c6a2d2..03a389358562 100644
> --- a/include/linux/slab.h
> +++ b/include/linux/slab.h
> @@ -184,7 +184,6 @@ void memcg_deactivate_kmem_caches(struct mem_cgroup *, struct mem_cgroup *);
>  /*
>   * Common kmalloc functions provided by all allocators
>   */
> -void * __must_check __krealloc(const void *, size_t, gfp_t);
>  void * __must_check krealloc(const void *, size_t, gfp_t);
>  void kfree(const void *);
>  void kzfree(const void *);
> diff --git a/mm/slab_common.c b/mm/slab_common.c
> index f0ab6d4ceb4c..87e8923cf0b6 100644
> --- a/mm/slab_common.c
> +++ b/mm/slab_common.c
> @@ -1675,28 +1675,6 @@ static __always_inline void *__do_krealloc(const void *p, size_t new_size,
>  	return ret;
>  }
>  
> -/**
> - * __krealloc - like krealloc() but don't free @p.
> - * @p: object to reallocate memory for.
> - * @new_size: how many bytes of memory are required.
> - * @flags: the type of memory to allocate.
> - *
> - * This function is like krealloc() except it never frees the originally
> - * allocated buffer. Use this if you don't want to free the buffer immediately
> - * like, for example, with RCU.
> - *
> - * Return: pointer to the allocated memory or %NULL in case of error
> - */
> -void *__krealloc(const void *p, size_t new_size, gfp_t flags)
> -{
> -	if (unlikely(!new_size))
> -		return ZERO_SIZE_PTR;
> -
> -	return __do_krealloc(p, new_size, flags);
> -
> -}
> -EXPORT_SYMBOL(__krealloc);
> -
>  /**
>   * krealloc - reallocate memory. The contents will remain unchanged.
>   * @p: object to reallocate memory for.
> diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci
> index 441799b5359b..66aaf68889a5 100644
> --- a/scripts/coccinelle/free/devm_free.cocci
> +++ b/scripts/coccinelle/free/devm_free.cocci
> @@ -94,8 +94,6 @@ position p;
>   kfree@p(x)
>  |
>   kzfree@p(x)
> -|
> - __krealloc@p(x, ...)
>  |
>   krealloc@p(x, ...)
>  |
> @@ -120,8 +118,6 @@ position p != safe.p;
>  |
>  * kzfree@p(x)
>  |
> -* __krealloc@p(x, ...)
> -|
>  * krealloc@p(x, ...)
>  |
>  * free_pages@p(x, ...)
> 

IMHO, __do_krealloc() changes can go into a separate patch.

Reviewed-by: David Hildenbrand <david@redhat.com>
David Rientjes Dec. 13, 2019, 6:59 p.m. UTC | #4
On Fri, 13 Dec 2019, Florian Westphal wrote:

> > > Since 5.5-rc1 the last user of this function is gone, so remove the
> > > functionality.
> > > 
> > > See commit
> > > 2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
> > > for details.
> > > 
> > > Signed-off-by: Florian Westphal <fw@strlen.de>
> > 
> > So this also means that we can fold __do_krealloc() into krealloc()?
> 
> I would leave that to compiler but if you prefer this I can respin.
> 

Sure, no problem.

Acked-by: David Rientjes <rientjes@google.com>
diff mbox series

Patch

diff --git a/include/linux/slab.h b/include/linux/slab.h
index 877a95c6a2d2..03a389358562 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -184,7 +184,6 @@  void memcg_deactivate_kmem_caches(struct mem_cgroup *, struct mem_cgroup *);
 /*
  * Common kmalloc functions provided by all allocators
  */
-void * __must_check __krealloc(const void *, size_t, gfp_t);
 void * __must_check krealloc(const void *, size_t, gfp_t);
 void kfree(const void *);
 void kzfree(const void *);
diff --git a/mm/slab_common.c b/mm/slab_common.c
index f0ab6d4ceb4c..87e8923cf0b6 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -1675,28 +1675,6 @@  static __always_inline void *__do_krealloc(const void *p, size_t new_size,
 	return ret;
 }
 
-/**
- * __krealloc - like krealloc() but don't free @p.
- * @p: object to reallocate memory for.
- * @new_size: how many bytes of memory are required.
- * @flags: the type of memory to allocate.
- *
- * This function is like krealloc() except it never frees the originally
- * allocated buffer. Use this if you don't want to free the buffer immediately
- * like, for example, with RCU.
- *
- * Return: pointer to the allocated memory or %NULL in case of error
- */
-void *__krealloc(const void *p, size_t new_size, gfp_t flags)
-{
-	if (unlikely(!new_size))
-		return ZERO_SIZE_PTR;
-
-	return __do_krealloc(p, new_size, flags);
-
-}
-EXPORT_SYMBOL(__krealloc);
-
 /**
  * krealloc - reallocate memory. The contents will remain unchanged.
  * @p: object to reallocate memory for.
diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci
index 441799b5359b..66aaf68889a5 100644
--- a/scripts/coccinelle/free/devm_free.cocci
+++ b/scripts/coccinelle/free/devm_free.cocci
@@ -94,8 +94,6 @@  position p;
  kfree@p(x)
 |
  kzfree@p(x)
-|
- __krealloc@p(x, ...)
 |
  krealloc@p(x, ...)
 |
@@ -120,8 +118,6 @@  position p != safe.p;
 |
 * kzfree@p(x)
 |
-* __krealloc@p(x, ...)
-|
 * krealloc@p(x, ...)
 |
 * free_pages@p(x, ...)