[PATCH v2 1/3] kasan: use separate (un)poison implementation for integrated init

Peter Collingbourne pcc at google.com
Wed May 12 13:08:23 PDT 2021


On Wed, May 12, 2021 at 5:10 AM Catalin Marinas <catalin.marinas at arm.com> 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



More information about the linux-arm-kernel mailing list