Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1482069

Re: [PATCH v2] /dev/dax: fix Kconfig dependency build breakage

From Dan Williams <dan.j.williams@intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2] /dev/dax: fix Kconfig dependency build breakage
Date 2016-09-13 02:40 +0200
Message-ID <sgJVv-2yE-3@gated-at.bofh.it> (permalink)
References <sfyz7-6nb-1@gated-at.bofh.it> <sgC7D-5D9-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, Sep 12, 2016 at 9:15 AM, Ross Zwisler
<ross.zwisler@linux.intel.com> wrote:
> The function dax_pmem_probe() in drivers/dax/pmem.c is compiled under the
> CONFIG_DEV_DAX_PMEM tri-state config option.  This config option currently
> only depends on CONFIG_NVDIMM_DAX, a bool, which means that the following
> configuration is possible:
>
> CONFIG_LIBNVDIMM=m
> ...
> CONFIG_NVDIMM_DAX=y
> CONFIG_DEV_DAX=y
> CONFIG_DEV_DAX_PMEM=y
>
> With this config LIBNVDIMM is compiled as a module with NVDIMM_DAX=y just
> meaning that we will compile drivers/nvdimm/dax_devs.c into that module.
> However, dax_pmem_probe() depends on several symbols defined in
> drivers/nvdimm/dax_devs.c, which results in the following build errors:
>
> drivers/built-in.o: In function `dax_pmem_probe':
> linux/drivers/dax/pmem.c:70: undefined reference to `to_nd_dax'
> linux/drivers/dax/pmem.c:74: undefined reference to
> `nvdimm_namespace_common_probe'
> linux/drivers/dax/pmem.c:80: undefined reference to `devm_nsio_enable'
> linux/drivers/dax/pmem.c:81: undefined reference to `nvdimm_setup_pfn'
> linux/drivers/dax/pmem.c:84: undefined reference to `devm_nsio_disable'
> linux/drivers/dax/pmem.c:122: undefined reference to `to_nd_region'
> drivers/built-in.o: In function `dax_pmem_init':
> linux/drivers/dax/pmem.c:147: undefined reference to `__nd_driver_register'
>
> Fix this by making NVDIMM_DAX a tristate.  DEV_DAX_PMEM depends on
> NVDIMM_DAX which depends on LIBNVDIMM.  Since they are all now tristates,
> if LIBNVDIMM is built as a kernel module DEV_DAX_PMEM will be as well.
> This prevents dax_devs.c from being built as a built-in while its
> dependencies are in the libnvdimm.ko module.
>
> Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> ---
>
> Change from v1:
>  - Made NVDIMM_DAX a tristate instead of adding an extra dependency. (djbw)

Thanks, applied.

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH] /dev/dax: fix Kconfig dependency build breakage Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-09-09 20:00 +0200
  Re: [PATCH] /dev/dax: fix Kconfig dependency build breakage Dan Williams <dan.j.williams@intel.com> - 2016-09-09 20:20 +0200
    [PATCH v2] /dev/dax: fix Kconfig dependency build breakage Ross Zwisler <ross.zwisler@linux.intel.com> - 2016-09-12 18:20 +0200
      Re: [PATCH v2] /dev/dax: fix Kconfig dependency build breakage Dan Williams <dan.j.williams@intel.com> - 2016-09-13 02:40 +0200

csiph-web