On Sat, 21 Jun 2014, Fabian Frederick wrote:

> This reverts commit a2d445d44000
> 
> Adding __init to blkcg_policy_register makes it unreliable when
> loading cfq at runtime.
> 
> (Similar problem to b5097e956a4d "block: add __init to elv_register"
>  reported by Damien Wyart).
> 
> Cc: Jens Axboe <[email protected]>
> Cc: Damien Wyart <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Signed-off-by: Fabian Frederick <[email protected]>
> ---
>  block/blk-cgroup.c | 2 +-
>  block/blk-cgroup.h | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
> index 069bc20..9f5bce3 100644
> --- a/block/blk-cgroup.c
> +++ b/block/blk-cgroup.c
> @@ -1093,7 +1093,7 @@ EXPORT_SYMBOL_GPL(blkcg_deactivate_policy);
>   * Register @pol with blkcg core.  Might sleep and @pol may be modified on
>   * successful registration.  Returns 0 on success and -errno on failure.
>   */
> -int __init blkcg_policy_register(struct blkcg_policy *pol)
> +int blkcg_policy_register(struct blkcg_policy *pol)
>  {
>       int i, ret;
>  

This is the second such revert from you for __init annotations, have you 
double checked all the other patches you've sent?

> diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
> index cbb7f94..d692b29 100644
> --- a/block/blk-cgroup.h
> +++ b/block/blk-cgroup.h
> @@ -145,7 +145,7 @@ void blkcg_drain_queue(struct request_queue *q);
>  void blkcg_exit_queue(struct request_queue *q);
>  
>  /* Blkio controller policy registration */
> -int __init blkcg_policy_register(struct blkcg_policy *pol);
> +int blkcg_policy_register(struct blkcg_policy *pol);
>  void blkcg_policy_unregister(struct blkcg_policy *pol);
>  int blkcg_activate_policy(struct request_queue *q,
>                         const struct blkcg_policy *pol);
> @@ -580,7 +580,7 @@ static inline struct blkcg_gq *blkg_lookup(struct blkcg 
> *blkcg, void *key) { ret
>  static inline int blkcg_init_queue(struct request_queue *q) { return 0; }
>  static inline void blkcg_drain_queue(struct request_queue *q) { }
>  static inline void blkcg_exit_queue(struct request_queue *q) { }
> -static inline int __init blkcg_policy_register(struct blkcg_policy *pol) { 
> return 0; }
> +static inline int blkcg_policy_register(struct blkcg_policy *pol) { return 
> 0; }

Why would you have marked an inline function as __init in the first place?

>  static inline void blkcg_policy_unregister(struct blkcg_policy *pol) { }
>  static inline int blkcg_activate_policy(struct request_queue *q,
>                                       const struct blkcg_policy *pol) { 
> return 0; }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to