Re: [GIT PULL] libnvdimm for v5.7

From: Dan Williams
Date: Thu Apr 09 2020 - 01:14:29 EST


On Wed, Apr 8, 2020 at 9:11 PM Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Apr 7, 2020 at 1:12 PM Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> >
> > mm/memremap_pages: Introduce memremap_compat_align()
>
> Why is this an exported function that just returns a constant?
>
> Why isn't it just a #define (or inline) in a header file?
>
> Yes, yes, it would need to be conditional on not having that
> CONFIG_ARCH_HAS_MEMREMAP_COMPAT_ALIGN, but it does look strange.
>
> I've pulled it, since it doesn't matter that much, but I find it silly
> to have full-fledged functions - and exported them GPL-only - to
> return a constant. Crazy.

Yes. tl;dr I gave up after failing to unwind a header dependency chain [1].

The source of the trouble was trying to find an existing top-level
header file that included an asm local version, but also needed to
include mmzone.h for the definition of SUBSECTION_SIZE.
include/linux/io.h fit that requirement, pulling in mmzone.h there
proved more difficult than my header unwinding skills could
accomplish.

[1]: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/commit/?id=c990ae9376c15f40aff2f61f42a71be5b81f9ee1