On Tue, Jun 25, 2019 at 09:56:50AM +0200, Christoph Hellwig wrote: > On Fri, Jun 21, 2019 at 11:41:31AM -0300, Jason Gunthorpe wrote: > > > static bool gup_fast_permitted(unsigned long start, unsigned long end) > > > { > > > - return true; > > > + return IS_ENABLED(CONFIG_HAVE_FAST_GUP) ? true : false; > > > > The ?: is needed with IS_ENABLED? > > It shouldn't, I'll fix it up. > > > I'd suggest to revise this block a tiny bit: > > > > -#ifndef gup_fast_permitted > > +#if !IS_ENABLED(CONFIG_HAVE_FAST_GUP) || !defined(gup_fast_permitted) > > /* > > * Check if it's allowed to use __get_user_pages_fast() for the range, or > > * we need to fall back to the slow version: > > */ > > -bool gup_fast_permitted(unsigned long start, int nr_pages) > > +static bool gup_fast_permitted(unsigned long start, int nr_pages) > > { > > > > Just in case some future arch code mismatches the header and kconfig.. > > IS_ENABLED outside a function doesn't really make sense. But I'll > just life the IS_ENABLED(CONFIG_HAVE_FAST_GUP) checks into the two > callers. I often see '#if IS_ENABLED(CONFIG_X)', IIRC last I looked at that, it was needed because the usual #ifdef CONFIG_X didn't work if the value was =m? Would be interested to know if that is not the right way to use kconfig Jason