diff mbox

[v3,8/8] mm: Fix exports that inadvertently make put_page() EXPORT_SYMBOL_GPL

Message ID 152938832086.17797.4538943238207602944.stgit@dwillia2-desk3.amr.corp.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Williams June 19, 2018, 6:05 a.m. UTC
Now that all producers of dev_pagemap instances in the kernel are
properly converted to EXPORT_SYMBOL_GPL, fix up implicit consumers that
interact with dev_pagemap owners via put_page(). To reiterate,
dev_pagemap producers are EXPORT_SYMBOL_GPL because they adopt and
modify core memory management interfaces such that the dev_pagemap owner
can interact with all other kernel infrastructure and sub-systems
(drivers, filesystems, etc...) that consume page structures.

Fixes: e76384884344 ("mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS")
Reported-by: Joe Gorse <jhgorse@gmail.com>
Reported-by: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 kernel/memremap.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

John Hubbard June 19, 2018, 6:59 a.m. UTC | #1
On 06/18/2018 11:05 PM, Dan Williams wrote:
> Now that all producers of dev_pagemap instances in the kernel are
> properly converted to EXPORT_SYMBOL_GPL, fix up implicit consumers that
> interact with dev_pagemap owners via put_page(). To reiterate,
> dev_pagemap producers are EXPORT_SYMBOL_GPL because they adopt and
> modify core memory management interfaces such that the dev_pagemap owner
> can interact with all other kernel infrastructure and sub-systems
> (drivers, filesystems, etc...) that consume page structures.
> 
> Fixes: e76384884344 ("mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS")
> Reported-by: Joe Gorse <jhgorse@gmail.com>
> Reported-by: John Hubbard <jhubbard@nvidia.com>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> ---
>  kernel/memremap.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/memremap.c b/kernel/memremap.c
> index 16141b608b63..ecee37b44aa1 100644
> --- a/kernel/memremap.c
> +++ b/kernel/memremap.c
> @@ -330,7 +330,7 @@ EXPORT_SYMBOL_GPL(get_dev_pagemap);
>  
>  #ifdef CONFIG_DEV_PAGEMAP_OPS
>  DEFINE_STATIC_KEY_FALSE(devmap_managed_key);
> -EXPORT_SYMBOL_GPL(devmap_managed_key);
> +EXPORT_SYMBOL(devmap_managed_key);
>  static atomic_t devmap_enable;
>  
>  /*
> @@ -371,5 +371,5 @@ void __put_devmap_managed_page(struct page *page)
>  	} else if (!count)
>  		__put_page(page);
>  }
> -EXPORT_SYMBOL_GPL(__put_devmap_managed_page);
> +EXPORT_SYMBOL(__put_devmap_managed_page);
>  #endif /* CONFIG_DEV_PAGEMAP_OPS */
> 

Yep, that fixes everything I was seeing.

thanks,
Joe Gorse July 5, 2018, 2:51 p.m. UTC | #2
Thank you! OpenAFS is good now as well.

In terms of schedule, when do you think this will make it upsteam? Will we
make the 4.18 kernel release?

Cheers,
Joe Gorse


On Tue, Jun 19, 2018 at 2:59 AM, John Hubbard <jhubbard@nvidia.com> wrote:

> On 06/18/2018 11:05 PM, Dan Williams wrote:
> > Now that all producers of dev_pagemap instances in the kernel are
> > properly converted to EXPORT_SYMBOL_GPL, fix up implicit consumers that
> > interact with dev_pagemap owners via put_page(). To reiterate,
> > dev_pagemap producers are EXPORT_SYMBOL_GPL because they adopt and
> > modify core memory management interfaces such that the dev_pagemap owner
> > can interact with all other kernel infrastructure and sub-systems
> > (drivers, filesystems, etc...) that consume page structures.
> >
> > Fixes: e76384884344 ("mm: introduce MEMORY_DEVICE_FS_DAX and
> CONFIG_DEV_PAGEMAP_OPS")
> > Reported-by: Joe Gorse <jhgorse@gmail.com>
> > Reported-by: John Hubbard <jhubbard@nvidia.com>
> > Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> > ---
> >  kernel/memremap.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/memremap.c b/kernel/memremap.c
> > index 16141b608b63..ecee37b44aa1 100644
> > --- a/kernel/memremap.c
> > +++ b/kernel/memremap.c
> > @@ -330,7 +330,7 @@ EXPORT_SYMBOL_GPL(get_dev_pagemap);
> >
> >  #ifdef CONFIG_DEV_PAGEMAP_OPS
> >  DEFINE_STATIC_KEY_FALSE(devmap_managed_key);
> > -EXPORT_SYMBOL_GPL(devmap_managed_key);
> > +EXPORT_SYMBOL(devmap_managed_key);
> >  static atomic_t devmap_enable;
> >
> >  /*
> > @@ -371,5 +371,5 @@ void __put_devmap_managed_page(struct page *page)
> >       } else if (!count)
> >               __put_page(page);
> >  }
> > -EXPORT_SYMBOL_GPL(__put_devmap_managed_page);
> > +EXPORT_SYMBOL(__put_devmap_managed_page);
> >  #endif /* CONFIG_DEV_PAGEMAP_OPS */
> >
>
> Yep, that fixes everything I was seeing.
>
> thanks,
> --
> John Hubbard
> NVIDIA
>
diff mbox

Patch

diff --git a/kernel/memremap.c b/kernel/memremap.c
index 16141b608b63..ecee37b44aa1 100644
--- a/kernel/memremap.c
+++ b/kernel/memremap.c
@@ -330,7 +330,7 @@  EXPORT_SYMBOL_GPL(get_dev_pagemap);
 
 #ifdef CONFIG_DEV_PAGEMAP_OPS
 DEFINE_STATIC_KEY_FALSE(devmap_managed_key);
-EXPORT_SYMBOL_GPL(devmap_managed_key);
+EXPORT_SYMBOL(devmap_managed_key);
 static atomic_t devmap_enable;
 
 /*
@@ -371,5 +371,5 @@  void __put_devmap_managed_page(struct page *page)
 	} else if (!count)
 		__put_page(page);
 }
-EXPORT_SYMBOL_GPL(__put_devmap_managed_page);
+EXPORT_SYMBOL(__put_devmap_managed_page);
 #endif /* CONFIG_DEV_PAGEMAP_OPS */