Re: [PATCH 3/5] u64_stats: Introduce IRQs disabled helpers
From: Paolo Bonzini
Date: Fri Sep 02 2016 - 10:36:07 EST
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