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(+)
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 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 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 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 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
dri-devel@lists.freedesktop.org