On Fri, Jul 10, 2020 at 08:48:17AM +0300, Nick Kossifidis wrote: > ???????? 2020-07-10 08:38, Christoph Hellwig ????????????: > > On Thu, Jul 09, 2020 at 11:49:21PM +0300, Mike Rapoport wrote: > > > > +#ifndef CONFIG_GENERIC_DEVMEM_IS_ALLOWED > > > > +extern int devmem_is_allowed(unsigned long pfn); > > > > +#endif > > > > Nit: no need for the extern here. > > > > > > +config GENERIC_LIB_DEVMEM_IS_ALLOWED > > > > + bool > > > > + select ARCH_HAS_DEVMEM_IS_ALLOWED > > > > > > This seems to work the other way around from the usual Kconfig chains. > > > In the most cases ARCH_HAS_SOMETHING selects GENERIC_SOMETHING. > > > > > > I believe nicer way would be to make > > > > > > config STRICT_DEVMEM > > > bool "Filter access to /dev/mem" > > > depends on MMU && DEVMEM > > > depends on ARCH_HAS_DEVMEM_IS_ALLOWED || > > > GENERIC_LIB_DEVMEM_IS_ALLOWED > > > > > > config GENERIC_LIB_DEVMEM_IS_ALLOWED > > > bool > > > > > > and then s/select ARCH_HAS_DEVMEM_IS_ALLOWED/select > > > GENERIC_LIB_DEVMEM_IS_ALLOWED/ > > > in the arch Kconfigs and drop ARCH_HAS_DEVMEM_IS_ALLOWED in the end. > > > > To take a step back: Is there any reason to not just always > > STRICT_DEVMEM? Maybe for a few architectures that don't currently > > support a strict /dev/mem the generic version isn't quite correct, but > > someone selecting the option and finding the issue is the best way to > > figure that out.. > > > > During prototyping / testing having full access to all physical memory > through /dev/mem is very useful. We should have it enabled by default but > leave the config option there so that users / developers can disable it if > needed IMHO. I did not suggest to take the config option away. Just to unconditionally allow enabling the option on all architectures.