Messages in this thread | | | From | Linus Torvalds <> | Date | Mon, 7 Jan 2019 09:43:41 -0800 | Subject | Re: [PATCH] x86: only use ERMS for user copies for larger sizes |
| |
On Mon, Jan 7, 2019 at 1:55 AM David Laight <David.Laight@aculab.com> wrote: > > I needed to open-code one part because it wants to do copy_to_user() > from a PCIe address buffer (which has to work).
It will never work for memcpy_fromio(). Any driver that thinks it will copy from io space to user space absolutely *has* to do it by hand. No questions, and no exceptions. Some loop like
for (..) put_user(readl(iomem++), uaddr++);
because neither copy_to_user() nor memcpy_fromio() will *ever* handle that correctly.
They might randomly happen to work on x86, but absolutely nowhere else.
Linus
| |