lkml.org 
[lkml]   [2020]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/2] kcsan: Move kcsan_{disable,enable}_current() to kcsan-checks.h
    On Tue, Mar 31, 2020 at 09:32:32PM +0200, Marco Elver wrote:
    > Both affect access checks, and should therefore be in kcsan-checks.h.
    > This is in preparation to use these in compiler.h.
    >
    > Signed-off-by: Marco Elver <elver@google.com>

    The two of these do indeed make data_race() act more like one would
    expect, thank you! I have queued them for further testing and review.

    Thanx, Paul

    > ---
    > include/linux/kcsan-checks.h | 16 ++++++++++++++++
    > include/linux/kcsan.h | 16 ----------------
    > 2 files changed, 16 insertions(+), 16 deletions(-)
    >
    > diff --git a/include/linux/kcsan-checks.h b/include/linux/kcsan-checks.h
    > index 101df7f46d89..ef95ddc49182 100644
    > --- a/include/linux/kcsan-checks.h
    > +++ b/include/linux/kcsan-checks.h
    > @@ -36,6 +36,20 @@
    > */
    > void __kcsan_check_access(const volatile void *ptr, size_t size, int type);
    >
    > +/**
    > + * kcsan_disable_current - disable KCSAN for the current context
    > + *
    > + * Supports nesting.
    > + */
    > +void kcsan_disable_current(void);
    > +
    > +/**
    > + * kcsan_enable_current - re-enable KCSAN for the current context
    > + *
    > + * Supports nesting.
    > + */
    > +void kcsan_enable_current(void);
    > +
    > /**
    > * kcsan_nestable_atomic_begin - begin nestable atomic region
    > *
    > @@ -133,6 +147,8 @@ void kcsan_end_scoped_access(struct kcsan_scoped_access *sa);
    > static inline void __kcsan_check_access(const volatile void *ptr, size_t size,
    > int type) { }
    >
    > +static inline void kcsan_disable_current(void) { }
    > +static inline void kcsan_enable_current(void) { }
    > static inline void kcsan_nestable_atomic_begin(void) { }
    > static inline void kcsan_nestable_atomic_end(void) { }
    > static inline void kcsan_flat_atomic_begin(void) { }
    > diff --git a/include/linux/kcsan.h b/include/linux/kcsan.h
    > index 17ae59e4b685..53340d8789f9 100644
    > --- a/include/linux/kcsan.h
    > +++ b/include/linux/kcsan.h
    > @@ -50,25 +50,9 @@ struct kcsan_ctx {
    > */
    > void kcsan_init(void);
    >
    > -/**
    > - * kcsan_disable_current - disable KCSAN for the current context
    > - *
    > - * Supports nesting.
    > - */
    > -void kcsan_disable_current(void);
    > -
    > -/**
    > - * kcsan_enable_current - re-enable KCSAN for the current context
    > - *
    > - * Supports nesting.
    > - */
    > -void kcsan_enable_current(void);
    > -
    > #else /* CONFIG_KCSAN */
    >
    > static inline void kcsan_init(void) { }
    > -static inline void kcsan_disable_current(void) { }
    > -static inline void kcsan_enable_current(void) { }
    >
    > #endif /* CONFIG_KCSAN */
    >
    > --
    > 2.26.0.rc2.310.g2932bb562d-goog
    >

    \
     
     \ /
      Last update: 2020-04-01 00:57    [W:5.320 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site