svn commit: r357728 - head/sys/sys
Pedro Giffuni
pfg at FreeBSD.org
Mon Feb 10 16:32:10 UTC 2020
Hi;
On 10/02/2020 08:52, Mateusz Guzik wrote:
> Author: mjg
> Date: Mon Feb 10 13:52:25 2020
> New Revision: 357728
> URL: https://svnweb.freebsd.org/changeset/base/357728
>
> Log:
> Tidy up zpcpu_replace*
>
> - only compute the target address once
> - remove spurious type casting, zpcpu_get already return the correct type
>
> While here add missing newlines to other routines.
>
> Modified:
> head/sys/sys/pcpu.h
For the record, this file (and many others), uses a space after #define,
when we should be using a tab to conform with style(9). One of the many
lessons from bde.
I have a huge patch to fix those, which I won't commit because it wouldl
obliterate all VCS annotations.
Pedro.
> Modified: head/sys/sys/pcpu.h
> ==============================================================================
> --- head/sys/sys/pcpu.h Mon Feb 10 13:24:14 2020 (r357727)
> +++ head/sys/sys/pcpu.h Mon Feb 10 13:52:25 2020 (r357728)
> @@ -245,32 +245,41 @@ extern struct pcpu *cpuid_to_pcpu[];
> * If you need atomicity use xchg.
> * */
> #define zpcpu_replace(base, val) ({ \
> - __typeof(val) _old = *(__typeof(base))zpcpu_get(base); \
> - *(__typeof(val) *)zpcpu_get(base) = val; \
> + __typeof(val) *_ptr = zpcpu_get(base); \
> + __typeof(val) _old; \
> + \
> + _old = *_ptr; \
> + *_ptr = val; \
> _old; \
> })
>
> #define zpcpu_replace_cpu(base, val, cpu) ({ \
> - __typeof(val) _old = *(__typeof(base))zpcpu_get_cpu(base, cpu); \
> - *(__typeof(val) *)zpcpu_get_cpu(base, cpu) = val; \
> + __typeof(val) *_ptr = zpcpu_get_cpu(base, cpu); \
> + __typeof(val) _old; \
> + \
> + _old = *_ptr; \
> + *_ptr = val; \
> _old; \
> })
>
> #define zpcpu_set_protected(base, val) ({ \
> MPASS(curthread->td_critnest > 0); \
> __typeof(val) *_ptr = zpcpu_get(base); \
> + \
> *_ptr = (val); \
> })
>
> #define zpcpu_add_protected(base, val) ({ \
> MPASS(curthread->td_critnest > 0); \
> __typeof(val) *_ptr = zpcpu_get(base); \
> + \
> *_ptr += (val); \
> })
>
> #define zpcpu_sub_protected(base, val) ({ \
> MPASS(curthread->td_critnest > 0); \
> __typeof(val) *_ptr = zpcpu_get(base); \
> + \
> *_ptr -= (val); \
> })
>
More information about the svn-src-head
mailing list