Message ID | 20200508144017.3501418-2-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Fri, May 08, 2020 at 04:40:09PM +0200, Arnd Bergmann wrote: > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > without ZONE_DEVICE: It is kind of unfortunate to lift dependencies from DEVICE_PRIVATE into the users, is this really how kconfig is supposed to work or is something else wrong here? Jason
On Fri, May 8, 2020 at 5:00 PM Jason Gunthorpe <jgg@mellanox.com> wrote: > > On Fri, May 08, 2020 at 04:40:09PM +0200, Arnd Bergmann wrote: > > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > > without ZONE_DEVICE: > > It is kind of unfortunate to lift dependencies from DEVICE_PRIVATE > into the users, is this really how kconfig is supposed to work or is > something else wrong here? Usually the problem is trying to use 'select' for something that can be done with 'depends on'. I have actually no idea what CONFIG_DEVICE_PRIVATE does, as it lacks a help text and is a rather generic term. Would it be possible to decouple DEVICE_PRIVATE from ZONE_DEVICE? It sounds like the first is related to the device model, while the second is for memory management, so maybe the dependency is not necessary. Arnd
On 5/8/20 7:40 AM, Arnd Bergmann wrote: > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > without ZONE_DEVICE: > > WARNING: unmet direct dependencies detected for DEVICE_PRIVATE > Depends on [n]: ZONE_DEVICE [=n] > Selected by [y]: > - DRM_NOUVEAU_SVM [=y] && HAS_IOMEM [=y] && DRM_NOUVEAU [=y] && MMU [=y] && STAGING [=y] > kernel/resource.c:1653:28: error: use of undeclared identifier 'PA_SECTION_SHIFT' > size = ALIGN(size, 1UL << PA_SECTION_SHIFT); > ^ > kernel/resource.c:1654:48: error: use of undeclared identifier 'MAX_PHYSMEM_BITS' > > Add a dependency for Nouveau to avoid broken randconfig builds. > > Fixes: d2c63df2242e ("mm/hmm: make CONFIG_DEVICE_PRIVATE into a select") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested Thanks. > --- > drivers/gpu/drm/nouveau/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig > index af5793f3e7c2..996ec5475908 100644 > --- a/drivers/gpu/drm/nouveau/Kconfig > +++ b/drivers/gpu/drm/nouveau/Kconfig > @@ -87,6 +87,7 @@ config DRM_NOUVEAU_BACKLIGHT > config DRM_NOUVEAU_SVM > bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support" > depends on DRM_NOUVEAU > + depends on ZONE_DEVICE > depends on MMU > depends on STAGING > select DEVICE_PRIVATE >
On Fri, May 08, 2020 at 05:05:03PM +0200, Arnd Bergmann wrote: > On Fri, May 8, 2020 at 5:00 PM Jason Gunthorpe <jgg@mellanox.com> wrote: > > > > On Fri, May 08, 2020 at 04:40:09PM +0200, Arnd Bergmann wrote: > > > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > > > without ZONE_DEVICE: > > > > It is kind of unfortunate to lift dependencies from DEVICE_PRIVATE > > into the users, is this really how kconfig is supposed to work or is > > something else wrong here? > > Usually the problem is trying to use 'select' for something that can > be done with 'depends on'. I have actually no idea what > CONFIG_DEVICE_PRIVATE does, as it lacks a help text > and is a rather generic term. It is a sub mode of ZONE_DEVICE, ie DEVICE_PRIVATE turns on a certain kind of ZONE_DEVICE page. Both ZONE_DEVICE and DEVICE_PRIVATE are APIs families drivers use, there is no reason for a user to select either of these directly. Jason
On Fri, May 8, 2020 at 9:04 PM Jason Gunthorpe <jgg@mellanox.com> wrote: > > On Fri, May 08, 2020 at 05:05:03PM +0200, Arnd Bergmann wrote: > > On Fri, May 8, 2020 at 5:00 PM Jason Gunthorpe <jgg@mellanox.com> wrote: > > > > > > On Fri, May 08, 2020 at 04:40:09PM +0200, Arnd Bergmann wrote: > > > > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > > > > without ZONE_DEVICE: > > > > > > It is kind of unfortunate to lift dependencies from DEVICE_PRIVATE > > > into the users, is this really how kconfig is supposed to work or is > > > something else wrong here? > > > > Usually the problem is trying to use 'select' for something that can > > be done with 'depends on'. I have actually no idea what > > CONFIG_DEVICE_PRIVATE does, as it lacks a help text > > and is a rather generic term. > > It is a sub mode of ZONE_DEVICE, ie DEVICE_PRIVATE turns on a certain > kind of ZONE_DEVICE page. > > Both ZONE_DEVICE and DEVICE_PRIVATE are APIs families drivers use, > there is no reason for a user to select either of these directly. Ok, then how about making ZONE_DEVICE a hidden symbol and adding something like config ZONE_DEVICE_POSSIBLE def_bool y depends on MEMORY_HOTPLUG depends on MEMORY_HOTREMOVE depends on SPARSEMEM_VMEMMAP depends on ARCH_HAS_PTE_DEVMAP then drivers that want it can do config FOO tristate "user visible option" depends on ZONE_DEVICE_POSSIBLE select ZONE_DEVICE Arnd
On Fri, May 08, 2020 at 04:40:09PM +0200, Arnd Bergmann wrote: > CONFIG_DEVICE_PRIVATE cannot be selected in configurations > without ZONE_DEVICE: > > WARNING: unmet direct dependencies detected for DEVICE_PRIVATE > Depends on [n]: ZONE_DEVICE [=n] > Selected by [y]: > - DRM_NOUVEAU_SVM [=y] && HAS_IOMEM [=y] && DRM_NOUVEAU [=y] && MMU [=y] && STAGING [=y] > kernel/resource.c:1653:28: error: use of undeclared identifier 'PA_SECTION_SHIFT' > size = ALIGN(size, 1UL << PA_SECTION_SHIFT); > ^ > kernel/resource.c:1654:48: error: use of undeclared identifier 'MAX_PHYSMEM_BITS' > > Add a dependency for Nouveau to avoid broken randconfig builds. > > Fixes: d2c63df2242e ("mm/hmm: make CONFIG_DEVICE_PRIVATE into a > select") I've reverted the patch this fixes, it seems more trouble than it is worth. Thanks, Jason
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig index af5793f3e7c2..996ec5475908 100644 --- a/drivers/gpu/drm/nouveau/Kconfig +++ b/drivers/gpu/drm/nouveau/Kconfig @@ -87,6 +87,7 @@ config DRM_NOUVEAU_BACKLIGHT config DRM_NOUVEAU_SVM bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support" depends on DRM_NOUVEAU + depends on ZONE_DEVICE depends on MMU depends on STAGING select DEVICE_PRIVATE
CONFIG_DEVICE_PRIVATE cannot be selected in configurations without ZONE_DEVICE: WARNING: unmet direct dependencies detected for DEVICE_PRIVATE Depends on [n]: ZONE_DEVICE [=n] Selected by [y]: - DRM_NOUVEAU_SVM [=y] && HAS_IOMEM [=y] && DRM_NOUVEAU [=y] && MMU [=y] && STAGING [=y] kernel/resource.c:1653:28: error: use of undeclared identifier 'PA_SECTION_SHIFT' size = ALIGN(size, 1UL << PA_SECTION_SHIFT); ^ kernel/resource.c:1654:48: error: use of undeclared identifier 'MAX_PHYSMEM_BITS' Add a dependency for Nouveau to avoid broken randconfig builds. Fixes: d2c63df2242e ("mm/hmm: make CONFIG_DEVICE_PRIVATE into a select") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/gpu/drm/nouveau/Kconfig | 1 + 1 file changed, 1 insertion(+)