Re: [PATCH tip/core/rcu 05/55] rcu: Move rcu_head definition to types.h

From: Paul Gortmaker
Date: Wed Sep 07 2011 - 14:34:40 EST


On 11-09-06 01:59 PM, Paul E. McKenney wrote:
> Take a first step towards untangling Linux kernel header files by
> placing the struct rcu_head definition into include/linux/types.h
> and including include/linux/types.h in include/linux/rcupdate.h
> where struct rcu_head used to be defined. The actual inclusion point
> for include/linux/types.h is with the rest of the #include directives
> rather than at the point where struct rcu_head used to be defined,
> as suggested by Mathieu Desnoyers.
>
> Once this is in place, then header files that need only rcu_head
> can include types.h rather than rcupdate.h.

Good to see more of this untangle work taking place.

The only comment I have is whether there is any sort of implicit
categorization in place for what is appropriate for types.h.

At the moment it seems to only contain really core primary types
(and the list/hlist structs which are almost core types...)

Are there any other alternative places - does linux/kernel.h make
more sense?

Paul.

>
> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Cc: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> ---
> include/linux/rcupdate.h | 11 +----------
> include/linux/types.h | 10 ++++++++++
> 2 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> index 8be0433..2516555 100644
> --- a/include/linux/rcupdate.h
> +++ b/include/linux/rcupdate.h
> @@ -33,6 +33,7 @@
> #ifndef __LINUX_RCUPDATE_H
> #define __LINUX_RCUPDATE_H
>
> +#include <linux/types.h>
> #include <linux/cache.h>
> #include <linux/spinlock.h>
> #include <linux/threads.h>
> @@ -64,16 +65,6 @@ static inline void rcutorture_record_progress(unsigned long vernum)
> #define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
> #define ULONG_CMP_LT(a, b) (ULONG_MAX / 2 < (a) - (b))
>
> -/**
> - * struct rcu_head - callback structure for use with RCU
> - * @next: next update requests in a list
> - * @func: actual update function to call after the grace period.
> - */
> -struct rcu_head {
> - struct rcu_head *next;
> - void (*func)(struct rcu_head *head);
> -};
> -
> /* Exported common interfaces */
> extern void call_rcu_sched(struct rcu_head *head,
> void (*func)(struct rcu_head *rcu));
> diff --git a/include/linux/types.h b/include/linux/types.h
> index 176da8c..57a9723 100644
> --- a/include/linux/types.h
> +++ b/include/linux/types.h
> @@ -238,6 +238,16 @@ struct ustat {
> char f_fpack[6];
> };
>
> +/**
> + * struct rcu_head - callback structure for use with RCU
> + * @next: next update requests in a list
> + * @func: actual update function to call after the grace period.
> + */
> +struct rcu_head {
> + struct rcu_head *next;
> + void (*func)(struct rcu_head *head);
> +};
> +
> #endif /* __KERNEL__ */
> #endif /* __ASSEMBLY__ */
> #endif /* _LINUX_TYPES_H */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/