diff mbox

parisc: Export flush_cache_page() (needed by lustre)

Message ID 1378373595-29471-1-git-send-email-geert@linux-m68k.org (mailing list archive)
State Accepted, archived
Delegated to: Helge Deller
Headers show

Commit Message

Geert Uytterhoeven Sept. 5, 2013, 9:33 a.m. UTC
ERROR: "flush_cache_page" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 arch/parisc/kernel/cache.c |    1 +
 1 file changed, 1 insertion(+)

Comments

James Bottomley Sept. 5, 2013, 4:01 p.m. UTC | #1
On Thu, 2013-09-05 at 11:33 +0200, Geert Uytterhoeven wrote:
> ERROR: "flush_cache_page" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
>  arch/parisc/kernel/cache.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
> index c035673..b521c0a 100644
> --- a/arch/parisc/kernel/cache.c
> +++ b/arch/parisc/kernel/cache.c
> @@ -602,6 +602,7 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long
>  		__flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
>  	}
>  }
> +EXPORT_SYMBOL_GPL(flush_cache_page);

This is an internal API: no architecture exports this.  Whoever is
trying to use it needs to use the correct API, so this is the wrong
patch.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kyle McMartin Sept. 5, 2013, 5:13 p.m. UTC | #2
On Thu, Sep 05, 2013 at 09:01:59AM -0700, James Bottomley wrote:
> > +EXPORT_SYMBOL_GPL(flush_cache_page);
> 
> This is an internal API: no architecture exports this.  Whoever is
> trying to use it needs to use the correct API, so this is the wrong
> patch.
> 

I suspect it's copy_{to,from}_user_page being called here:

drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c:
copy_to_user_page(vma, page, addr,

which we could probably take out of line.

--Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Geert Uytterhoeven Sept. 5, 2013, 6:07 p.m. UTC | #3
On Thu, Sep 5, 2013 at 7:13 PM, Kyle McMartin <kyle@infradead.org> wrote:
> On Thu, Sep 05, 2013 at 09:01:59AM -0700, James Bottomley wrote:
>> > +EXPORT_SYMBOL_GPL(flush_cache_page);
>>
>> This is an internal API: no architecture exports this.  Whoever is
>> trying to use it needs to use the correct API, so this is the wrong
>> patch.
>>
>
> I suspect it's copy_{to,from}_user_page being called here:

Indeed. Sorry, I should have mentioned that.

> drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c:
> copy_to_user_page(vma, page, addr,
>
> which we could probably take out of line.

If you want to hide flush_cache_page() for modules, yes.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
John David Anglin Sept. 5, 2013, 6:25 p.m. UTC | #4
On 9/5/2013 12:01 PM, James Bottomley wrote:
> On Thu, 2013-09-05 at 11:33 +0200, Geert Uytterhoeven wrote:
>> ERROR: "flush_cache_page" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!
>>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>>   arch/parisc/kernel/cache.c |    1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
>> index c035673..b521c0a 100644
>> --- a/arch/parisc/kernel/cache.c
>> +++ b/arch/parisc/kernel/cache.c
>> @@ -602,6 +602,7 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long
>>   		__flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
>>   	}
>>   }
>> +EXPORT_SYMBOL_GPL(flush_cache_page);
> This is an internal API: no architecture exports this.  Whoever is
> trying to use it needs to use the correct API, so this is the wrong
> patch.
>
There is a declaration for it in arch/parisc/include/asm/cacheflush.h.  
There are a bunch
of callers in mm.  The interface in documented in 
Documentation/cachetlb.txt.  We currently
use it in copy_to_user_page and copy_from_user_page.

Dave
diff mbox

Patch

diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index c035673..b521c0a 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -602,6 +602,7 @@  flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long
 		__flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
 	}
 }
+EXPORT_SYMBOL_GPL(flush_cache_page);
 
 #ifdef CONFIG_PARISC_TMPALIAS