On Tue, Apr 21, 2026 at 08:06:53PM +0200, Manuel Ebner wrote:
> Update Documentation/RCU/* to reflect new type-aware kmalloc-family as
> suggested in commit 2932ba8d9c99 ("slab: Introduce kmalloc_obj() and family")
> 
> ptr = kmalloc(sizeof(*ptr), gfp);
>  -> ptr = kmalloc_obj(*ptr);
> 
> Signed-off-by: Manuel Ebner <[email protected]>

Acked-by: Paul E. McKenney <[email protected]>

> ---
>  Documentation/RCU/Design/Requirements/Requirements.rst | 6 +++---
>  Documentation/RCU/listRCU.rst                          | 2 +-
>  Documentation/RCU/whatisRCU.rst                        | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst 
> b/Documentation/RCU/Design/Requirements/Requirements.rst
> index b5cdbba3ec2e..faca5a9c8c12 100644
> --- a/Documentation/RCU/Design/Requirements/Requirements.rst
> +++ b/Documentation/RCU/Design/Requirements/Requirements.rst
> @@ -206,7 +206,7 @@ non-\ ``NULL``, locklessly accessing the ``->a`` and 
> ``->b`` fields.
>  
>         1 bool add_gp_buggy(int a, int b)
>         2 {
> -       3   p = kmalloc(sizeof(*p), GFP_KERNEL);
> +       3   p = kmalloc_obj(*p);
>         4   if (!p)
>         5     return -ENOMEM;
>         6   spin_lock(&gp_lock);
> @@ -228,7 +228,7 @@ their rights to reorder this code as follows:
>  
>         1 bool add_gp_buggy_optimized(int a, int b)
>         2 {
> -       3   p = kmalloc(sizeof(*p), GFP_KERNEL);
> +       3   p = kmalloc_obj(*p);
>         4   if (!p)
>         5     return -ENOMEM;
>         6   spin_lock(&gp_lock);
> @@ -264,7 +264,7 @@ shows an example of insertion:
>  
>         1 bool add_gp(int a, int b)
>         2 {
> -       3   p = kmalloc(sizeof(*p), GFP_KERNEL);
> +       3   p = kmalloc_obj(*p);
>         4   if (!p)
>         5     return -ENOMEM;
>         6   spin_lock(&gp_lock);
> diff --git a/Documentation/RCU/listRCU.rst b/Documentation/RCU/listRCU.rst
> index d8bb98623c12..48c7272a4ccc 100644
> --- a/Documentation/RCU/listRCU.rst
> +++ b/Documentation/RCU/listRCU.rst
> @@ -276,7 +276,7 @@ The RCU version of audit_upd_rule() is as follows::
>  
>               list_for_each_entry(e, list, list) {
>                       if (!audit_compare_rule(rule, &e->rule)) {
> -                             ne = kmalloc(sizeof(*entry), GFP_ATOMIC);
> +                             ne = kmalloc_obj(*entry, GFP_ATOMIC);
>                               if (ne == NULL)
>                                       return -ENOMEM;
>                               audit_copy_rule(&ne->rule, &e->rule);
> diff --git a/Documentation/RCU/whatisRCU.rst b/Documentation/RCU/whatisRCU.rst
> index a1582bd653d1..770aab8ea36a 100644
> --- a/Documentation/RCU/whatisRCU.rst
> +++ b/Documentation/RCU/whatisRCU.rst
> @@ -468,7 +468,7 @@ uses of RCU may be found in listRCU.rst and NMI-RCU.rst.
>               struct foo *new_fp;
>               struct foo *old_fp;
>  
> -             new_fp = kmalloc(sizeof(*new_fp), GFP_KERNEL);
> +             new_fp = kmalloc_obj(*new_fp);
>               spin_lock(&foo_mutex);
>               old_fp = rcu_dereference_protected(gbl_foo, 
> lockdep_is_held(&foo_mutex));
>               *new_fp = *old_fp;
> @@ -570,7 +570,7 @@ The foo_update_a() function might then be written as 
> follows::
>               struct foo *new_fp;
>               struct foo *old_fp;
>  
> -             new_fp = kmalloc(sizeof(*new_fp), GFP_KERNEL);
> +             new_fp = kmalloc_obj(*new_fp);
>               spin_lock(&foo_mutex);
>               old_fp = rcu_dereference_protected(gbl_foo, 
> lockdep_is_held(&foo_mutex));
>               *new_fp = *old_fp;
> -- 
> 2.53.0
> 
> 

Reply via email to