Skip to content

Commit

Permalink
parisc: Update comment regarding implementation of copy_user_page_asm
Browse files Browse the repository at this point in the history
The attached patch describes the current implementation of
copy_user_page_asm().  It is possible to implement this routine using
either the kernel page mappings or equivalent aliases.  I tested both
and decided the former was more efficient.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
  • Loading branch information
danglin44 authored and hdeller committed Sep 20, 2016
1 parent c4351d9 commit 910a864
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions arch/parisc/kernel/pacache.S
Original file line number Diff line number Diff line change
Expand Up @@ -573,11 +573,17 @@ ENDPROC(copy_page_asm)
.endm

/*
* We can't do this since copy_user_page is used to bring in
* file data that might have instructions. Since the data would
* then need to be flushed out so the i-fetch can see it, it
* makes more sense to just copy through the kernel translation
* and flush it.
* copy_user_page_asm() performs a page copy using mappings
* equivalent to the user page mappings. It can be used to
* implement copy_user_page() but unfortunately both the `from'
* and `to' pages need to be flushed through mappings equivalent
* to the user mappings after the copy because the kernel accesses
* the `from' page through the kmap kernel mapping and the `to'
* page needs to be flushed since code can be copied. As a
* result, this implementation is less efficient than the simpler
* copy using the kernel mapping. It only needs the `from' page
* to flushed via the user mapping. The kunmap routines handle
* the flushes needed for the kernel mapping.
*
* I'm still keeping this around because it may be possible to
* use it if more information is passed into copy_user_page().
Expand Down

0 comments on commit 910a864

Please sign in to comment.