On Fri, May 04, 2018 at 05:32:26PM +0300, Andrey Ryabinin wrote: > On 05/04/2018 04:55 PM, Mark Rutland wrote: > > > +#define kcov_prepare_switch(t) \ > > +do { \ > > + (t)->kcov_mode |= KCOV_IN_CTXSW; \ > > +} while (0) > > + > > +#define kcov_finish_switch(t) \ > > +do { \ > > + (t)->kcov_mode &= ~KCOV_IN_CTXSW; \ > > +} while (0) > > + > > Why macros?
I can't use static inline functions without a circular include dependency between <linux/sched.h> and <linux/kcov.h>, since the definition of task_struct uses things defined in <linux/kcov.h>. Thanks, Mark.