Re: [PATCH] sparc32: make copy_to/from_user_page() usable from modular code

From: Geert Uytterhoeven
Date: Wed Mar 26 2014 - 04:41:45 EST


On Thu, Feb 13, 2014 at 10:15 PM, Paul Gortmaker
<paul.gortmaker@xxxxxxxxxxxxx> wrote:
> While copy_to/from_user_page() users are uncommon, there is one in
> drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c which leads
> to the following:
>
> ERROR: "sparc32_cachetlb_ops" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!
>
> during routine allmodconfig build coverage. The reason this happens
> is as follows:
>
> In arch/sparc/include/asm/cacheflush_32.h we have:
>
> #define flush_cache_page(vma,addr,pfn) \
> sparc32_cachetlb_ops->cache_page(vma, addr)
>
> #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
> do { \
> flush_cache_page(vma, vaddr, page_to_pfn(page));\
> memcpy(dst, src, len); \
> } while (0)
> #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
> do { \
> flush_cache_page(vma, vaddr, page_to_pfn(page));\
> memcpy(dst, src, len); \
> } while (0)
>
> However, sparc32_cachetlb_ops isn't exported and hence the error.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>

Sorry for only noticing now. A similar fix for pa-risc was reverted:

"Christoph Hellwig <hch@xxxxxxxxxxxxx> commented:
This one shouldn't go in - Geert sent it a bit prematurely, as Lustre
shouldn't use it just to reimplement core VM functionality (which it
shouldn't use either, but that's a separate story)."

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a446e72bc15c7bfd2c953e56064ace3566c79b0e

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/