[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LRH.2.02.2009160649560.20720@file01.intranet.prod.int.rdu2.redhat.com>
Date: Wed, 16 Sep 2020 06:57:10 -0400 (EDT)
From: Mikulas Patocka <mpatocka@...hat.com>
To: Dan Williams <dan.j.williams@...el.com>
cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Alexander Viro <viro@...iv.linux.org.uk>,
Andrew Morton <akpm@...ux-foundation.org>,
Vishal Verma <vishal.l.verma@...el.com>,
Dave Jiang <dave.jiang@...el.com>,
Ira Weiny <ira.weiny@...el.com>,
Matthew Wilcox <willy@...radead.org>, Jan Kara <jack@...e.cz>,
Eric Sandeen <esandeen@...hat.com>,
Dave Chinner <dchinner@...hat.com>,
"Kani, Toshi" <toshi.kani@....com>,
"Norton, Scott J" <scott.norton@....com>,
"Tadakamadla, Rajesh (DCIG/CDI/HPS Perf)"
<rajesh.tadakamadla@....com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
linux-nvdimm <linux-nvdimm@...ts.01.org>
Subject: [PATCH] pmem: export the symbols __copy_user_flushcache and
__copy_from_user_flushcache
On Tue, 15 Sep 2020, Mikulas Patocka wrote:
>
>
> On Tue, 15 Sep 2020, Mikulas Patocka wrote:
>
> > > > - __copy_from_user_inatomic_nocache doesn't flush cache for leading and
> > > > trailing bytes.
> > >
> > > You want copy_user_flushcache(). See how fs/dax.c arranges for
> > > dax_copy_from_iter() to route to pmem_copy_from_iter().
> >
> > Is it something new for the kernel 5.10? I see only __copy_user_flushcache
> > that is implemented just for x86 and arm64.
> >
> > There is __copy_from_user_flushcache implemented for x86, arm64 and power.
> > It is used in lib/iov_iter.c under
> > #ifdef CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE - so should I use this?
> >
> > Mikulas
>
> ... and __copy_user_flushcache is not exported for modules. So, I am stuck
> with __copy_from_user_inatomic_nocache.
>
> Mikulas
I'm submitting this patch that adds the required exports (so that we could
use __copy_from_user_flushcache on x86, arm64 and powerpc). Please, queue
it for the next merge window.
From: Mikulas Patocka <mpatocka@...hat.com>
Export the symbols __copy_user_flushcache and __copy_from_user_flushcache,
so that modules can use this functionality.
Signed-off-by: Mikulas Patocka <mpatocka@...hat.com>
---
arch/arm64/lib/uaccess_flushcache.c | 1 +
arch/powerpc/lib/pmem.c | 1 +
arch/x86/lib/usercopy_64.c | 1 +
3 files changed, 3 insertions(+)
Index: linux-2.6/arch/arm64/lib/uaccess_flushcache.c
===================================================================
--- linux-2.6.orig/arch/arm64/lib/uaccess_flushcache.c 2020-09-16 12:44:15.068038000 +0200
+++ linux-2.6/arch/arm64/lib/uaccess_flushcache.c 2020-09-16 12:44:15.068038000 +0200
@@ -38,3 +38,4 @@ unsigned long __copy_user_flushcache(voi
__clean_dcache_area_pop(to, n - rc);
return rc;
}
+EXPORT_SYMBOL_GPL(__copy_user_flushcache);
Index: linux-2.6/arch/x86/lib/usercopy_64.c
===================================================================
--- linux-2.6.orig/arch/x86/lib/usercopy_64.c 2020-09-16 12:44:15.068038000 +0200
+++ linux-2.6/arch/x86/lib/usercopy_64.c 2020-09-16 12:44:15.068038000 +0200
@@ -134,6 +134,7 @@ long __copy_user_flushcache(void *dst, c
return rc;
}
+EXPORT_SYMBOL_GPL(__copy_user_flushcache);
void __memcpy_flushcache(void *_dst, const void *_src, size_t size)
{
Index: linux-2.6/arch/powerpc/lib/pmem.c
===================================================================
--- linux-2.6.orig/arch/powerpc/lib/pmem.c 2020-09-16 12:44:15.068038000 +0200
+++ linux-2.6/arch/powerpc/lib/pmem.c 2020-09-16 12:44:15.068038000 +0200
@@ -75,6 +75,7 @@ long __copy_from_user_flushcache(void *d
return copied;
}
+EXPORT_SYMBOL_GPL(__copy_from_user_flushcache);
void memcpy_flushcache(void *dest, const void *src, size_t size)
{
Powered by blists - more mailing lists