Re: [PATCH 3/5] u64_stats: Introduce IRQs disabled helpers

2016-09-18 Thread Frederic Weisbecker
On Fri, Sep 02, 2016 at 04:35:54PM +0200, Paolo Bonzini wrote:
> 
> 
> On 02/09/2016 16:03, Frederic Weisbecker wrote:
> >  static inline unsigned int u64_stats_fetch_begin(const struct 
> > u64_stats_sync *syncp)
> >  {
> > -#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
> > -   return read_seqcount_begin(&syncp->seq);
> > -#else
> > -#if BITS_PER_LONG==32
> > +#if BITS_PER_LONG==32 && !defined(CONFIG_SMP)
> > preempt_disable();
> > +#else
> 
> This should be #endif, or this side ends without a "return" statement.

Good catch!

Thanks Paolo!


Re: [PATCH 3/5] u64_stats: Introduce IRQs disabled helpers

2016-09-02 Thread Paolo Bonzini


On 02/09/2016 16:03, Frederic Weisbecker wrote:
>  static inline unsigned int u64_stats_fetch_begin(const struct u64_stats_sync 
> *syncp)
>  {
> -#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
> - return read_seqcount_begin(&syncp->seq);
> -#else
> -#if BITS_PER_LONG==32
> +#if BITS_PER_LONG==32 && !defined(CONFIG_SMP)
>   preempt_disable();
> +#else

This should be #endif, or this side ends without a "return" statement.

> + return __u64_stats_fetch_begin(syncp);
>  #endif
> - return 0;
> +}

...

> 
>  static inline bool u64_stats_fetch_retry(const struct u64_stats_sync *syncp,
>unsigned int start)
>  {
> -#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
> - return read_seqcount_retry(&syncp->seq, start);
> -#else
> -#if BITS_PER_LONG==32
> +#if BITS_PER_LONG==32 && !defined(CONFIG_SMP)
>   preempt_enable();
> -#endif
> - return false;
> +#else

Same here.

> + return __u64_stats_fetch_retry(syncp, start);
>  #endif
>  }


...

> 
> - return read_seqcount_begin(&syncp->seq);
> -#else
> -#if BITS_PER_LONG==32
> +#if BITS_PER_LONG==32 && !defined(CONFIG_SMP)
>   local_irq_disable();
> -#endif
> - return 0;
> +#else

Same here.

> + return __u64_stats_fetch_begin(syncp);
>  #endif


> 
> -#if BITS_PER_LONG==32 && defined(CONFIG_SMP)
> - return read_seqcount_retry(&syncp->seq, start);
> -#else
> -#if BITS_PER_LONG==32
> +#if BITS_PER_LONG==32 && !defined(CONFIG_SMP)
>   local_irq_enable();
> -#endif
> - return false;
> +#else

Same here.

> + return __u64_stats_fetch_retry(syncp, start);
>  #endif


Thanks,

Paolo