On 13/08/2020 13.23, Matthew Wilcox wrote: > On Wed, Aug 12, 2020 at 02:51:52PM -0700, Kees Cook wrote: >> +/* >> + * Allows to effectively us apply __must_check to a macro so we can have >> + * both the type-agnostic benefits of the macros while also being able to >> + * enforce that the return value is, in fact, checked. >> + */ >> +static inline bool __must_check __must_check_bool(bool condition) >> +{ >> + return unlikely(condition); >> +} > > I'm fine with the concept, but this is a weirdly-generically-named > function that has a very specific unlikely() in it. So I'd call > this __must_check_overflow() and then it's obvious that overflow is > unlikely(), whereas it's not obvious that __must_check_bool() is going > to be unlikely().
Incidentally, __must_check_overflow was what was actually Suggested-by me - though I didn't think too hard about that name, I certainly agree with your reasoning. I still don't know if (un)likely annotations actually matter when used this way, but at least the same pattern is used in kernel/sched/, so probably. Rasmus