Re: OpenAFS module libafs.ko uses GPL-only symbol '__put_devmap_managed_page'
From: Dan Williams
Date: Wed Jun 13 2018 - 15:51:41 EST
[ adding Andrew, Christoph, and linux-mm ]
On Wed, Jun 13, 2018 at 12:33 PM, Joe Gorse <jhgorse@xxxxxxxxx> wrote:
> Please CC answers & comments to this email. Thanks! =)
> Our build is breaking as of
> commit e7638488434415aa478e78435cac8f0365737638
> Author: Dan Williams <dan.j.williams@xxxxxxxxx>
> Date: Wed May 16 11:46:08 2018 -0700
> mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS
> ... snip ...
> We do not directly use the GPL-only symbol '__put_devmap_managed_page'. It
> appears to be picked up from static-inlining in put_page(), which we need.
> How shall we proceed? Would it be reasonable to request the change of the
> GPL-only exports for this commit?
> Joe Gorse
> P.S. The build failure, for the morbidly curious:
>> FATAL: modpost: GPL-incompatible module libafs.ko uses GPL-only symbol
>> scripts/Makefile.modpost:92: recipe for target '__modpost' failed
>> make: *** [__modpost] Error 1
I think the right answer here is to make __put_devmap_managed_page()
EXPORT_SYMBOL(), since features like devm_memremap_pages() want to
change the behavior of all users of put_page(). It again holds that
devm_memremap_pages() needs to become EXPORT_SYMBOL_GPL() because it,
not put_page(), is the interface that is leaking control of core
kernel state/infrastructure to its users.