Thread (5 messages) 5 messages, 3 authors, 2018-04-09

Re: linux-next: build failure after merge of the nvdimm tree

From: Dan Williams <hidden>
Date: 2018-04-09 17:11:26
Also in: linux-devicetree, lkml

On Mon, Apr 9, 2018 at 12:34 AM, Oliver [off-list ref] wrote:
On Mon, Apr 9, 2018 at 1:38 PM, Oliver [off-list ref] wrote:
quoted
On Mon, Apr 9, 2018 at 1:16 PM, Stephen Rothwell [off-list ref] wrote:
quoted
Hi Dan,

After merging the nvdimm tree, today's linux-next build (x86_64
allmodconfig) failed like this:

ERROR: "of_node_to_nid" [drivers/nvdimm/of_pmem.ko] undefined!

Caused by commit

  717197608952 ("libnvdimm: Add device-tree based driver")

X86 seems to not have a version of of_node_to_nid() even though CONFIG_OF
and CONFIG_NUMA are both 'y' in this build.
It's a side effect of a driver selecting CONFIG_OF accidently. There's
a patch to fix this in the drm-misc-next tree:

https://lkml.org/lkml/2018/4/3/17
quoted
I have used the nvdimm tree from next-20180406 for today.
That works too.
Hmm, on closer inspection this is actually a bug in the of driver. The
patch above fixes the specific problem that we hit on ia64 due to
CONFIG_OF being selected by accident, but the underlying issue will
affect any platform that doesn't provide an implementation of
of_node_to_nid().

The fundamental problem is that the various actual implementations of
of_node_to_nid (ppc, sparc and the generic one in of_numa.c) export
the symbol. While the fallback implementation does not because it is
defined as a weak symbol. As a result we'll get this build failure iff
there's a call to of_node_to_nid() in a module.

The one-line fix is just to delete the call to of_node_to_nid() in
of_pmem.c. I have a patch that adds a Kconfig options and removes the
weak symbol games. That needs Acks from the ppc, sparc and DT
maintainers though so it'll take longer to organise.
How about just marking OF_PMEM as bool for the time being until all of
these other reworks land upstream?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help