From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: sparclinux <sparclinux@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] sparc32: make copy_to/from_user_page() usable from modular code
Date: Wed, 26 Mar 2014 14:23:15 +0000 [thread overview]
Message-ID: <5332E2D3.8030809@windriver.com> (raw)
In-Reply-To: <CAMuHMdUNvSahqcHPo9eO44d6opQXTvQq_HbUbFM2qhXTOj7LJQ@mail.gmail.com>
On 14-03-26 04:41 AM, Geert Uytterhoeven wrote:
> On Thu, Feb 13, 2014 at 10:15 PM, Paul Gortmaker
> <paul.gortmaker@windriver.com> 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@windriver.com>
>
> Sorry for only noticing now. A similar fix for pa-risc was reverted:
>
> "Christoph Hellwig <hch@infradead.org> 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)."
Generally speaking I agree, and every time I touch lustre, I feel
like I need to go home and have a shower. However, in this case,
lustre wasn't actually directly calling flush_cache_page type core
VM ops directly, and I couldn't convince myself of an argument
of why a modular driver should be forbidden from using either
of copy_to/from_user_page()...
Either way is fine with me. If a revert is desired and we want
to make lustre depend on CONFIG_BROKEN (okay, a bit harsh) or
don't allow lustre to be modular, that is also fine.
Paul.
--
>
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id¤46e72bc15c7bfd2c953e56064ace3566c79b0e
>
> 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
>
WARNING: multiple messages have this Message-ID (diff)
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: sparclinux <sparclinux@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] sparc32: make copy_to/from_user_page() usable from modular code
Date: Wed, 26 Mar 2014 10:23:15 -0400 [thread overview]
Message-ID: <5332E2D3.8030809@windriver.com> (raw)
In-Reply-To: <CAMuHMdUNvSahqcHPo9eO44d6opQXTvQq_HbUbFM2qhXTOj7LJQ@mail.gmail.com>
On 14-03-26 04:41 AM, Geert Uytterhoeven wrote:
> On Thu, Feb 13, 2014 at 10:15 PM, Paul Gortmaker
> <paul.gortmaker@windriver.com> 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@windriver.com>
>
> Sorry for only noticing now. A similar fix for pa-risc was reverted:
>
> "Christoph Hellwig <hch@infradead.org> 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)."
Generally speaking I agree, and every time I touch lustre, I feel
like I need to go home and have a shower. However, in this case,
lustre wasn't actually directly calling flush_cache_page type core
VM ops directly, and I couldn't convince myself of an argument
of why a modular driver should be forbidden from using either
of copy_to/from_user_page()...
Either way is fine with me. If a revert is desired and we want
to make lustre depend on CONFIG_BROKEN (okay, a bit harsh) or
don't allow lustre to be modular, that is also fine.
Paul.
--
>
> 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@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
>
next prev parent reply other threads:[~2014-03-26 14:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-13 21:15 [PATCH] sparc32: make copy_to/from_user_page() usable from modular code Paul Gortmaker
2014-02-13 21:15 ` Paul Gortmaker
2014-02-20 0:50 ` David Miller
2014-02-20 0:50 ` David Miller
2014-03-26 8:41 ` Geert Uytterhoeven
2014-03-26 8:41 ` Geert Uytterhoeven
2014-03-26 14:23 ` Paul Gortmaker [this message]
2014-03-26 14:23 ` Paul Gortmaker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5332E2D3.8030809@windriver.com \
--to=paul.gortmaker@windriver.com \
--cc=davem@davemloft.net \
--cc=geert@linux-m68k.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sparclinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.