On Wed, May 12, 2021 at 5:10 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > On Tue, May 11, 2021 at 04:54:24PM -0700, Peter Collingbourne wrote: > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > > index b1678a61e6a7..e35fa301d3db 100644 > > --- a/include/linux/kasan.h > > +++ b/include/linux/kasan.h > [...] > > @@ -113,8 +113,30 @@ static inline bool kasan_has_integrated_init(void) > > return false; > > } > > > > +static __always_inline void kasan_alloc_pages(struct page *page, > > + unsigned int order, gfp_t flags) > > +{ > > + /* Only available for integrated init. */ > > + BUG(); > > +} > > + > > +static __always_inline void kasan_free_pages(struct page *page, > > + unsigned int order) > > +{ > > + /* Only available for integrated init. */ > > + BUG(); > > +} > > Would these two work as BUILD_BUG()? It looks like it. This creates a dependency on the compiler being powerful enough to optimize away "if (0) undefined_function();" after inlining, which I'm not really a big fan of, but it looks like we're already doing similar things elsewhere in the kernel, so we might as well do it here as well. Peter