- Sep 16, 2017
-
-
Cloud User authored
-
Cloud User authored
-
- Jul 28, 2017
-
-
Howard Mao authored
-
- Jul 26, 2017
-
-
Howard Mao authored
-
Howard Mao authored
-
- Jul 07, 2017
-
-
Howard Mao authored
-
Howard Mao authored
-
- Jul 03, 2017
-
-
Palmer Dabbelt authored
-
- Jun 29, 2017
-
-
Palmer Dabbelt authored
Explicitly store FP state in struct sigcontext
-
- Jun 28, 2017
-
-
Andrew Waterman authored
Size it to handle the Q extension. Reserve 12 extra bytes for future extension state.
-
Howard Mao authored
-
Palmer Dabbelt authored
Add sigcontext extension capability
-
- Jun 27, 2017
-
-
Andrew Waterman authored
-
Zihao Yu authored
* pfn_base should not be added to zone size, else it will lead to wrong total page number. With 16MB physical memory, it will require 32MB memory to store node_mem_map. This will eventually trigger an illegal memory accessing during memory initialization.
-
- Jun 24, 2017
-
-
Howard Mao authored
-
Howard Mao authored
-
- Jun 21, 2017
-
-
Howard Mao authored
-
Howard Mao authored
-
- Jun 08, 2017
-
-
Nathan Pemberton authored
Fixed out of date instructions. Added more complete instructions on building a working system including initramfs and busybox.
-
- Jun 06, 2017
-
-
Andrew Waterman authored
This gets rid of a useless SEXT.W instruction in get/put_user for RV64.
-
Andrew Waterman authored
-
- Jun 03, 2017
-
-
Andrew Waterman authored
Since cycles_t is unsigned long, the same (simpler) code works for both.
-
Andrew Waterman authored
The only use of this is the LATCH macro, which is itself only used in arch-specific code.
-
- May 25, 2017
-
-
Albert Ou authored
-
- May 24, 2017
-
-
Howard Mao authored
-
Jonathan Neuschäfer authored
RISC-V needs a MAINTAINERS entry. Let's add one. Signed-off-by:
Jonathan Neuschäfer <j.neuschaefer@gmx.net> Signed-off-by:
Palmer Dabbelt <palmer@dabbelt.com>
-
Palmer Dabbelt authored
-
Howard Mao authored
-
Howard Mao authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
Palmer Dabbelt authored
-
- May 23, 2017
-
-
Palmer Dabbelt authored
Linux 4.12-rc2
-
- May 22, 2017
-
-
Linus Torvalds authored
-
Linus Torvalds authored
The code to fetch a 64-bit value from user space was entirely buggered, and has been since the code was merged in early 2016 in commit b2f68038 ("x86/mm/32: Add support for 64-bit __get_user() on 32-bit kernels"). Happily the buggered routine is almost certainly entirely unused, since the normal way to access user space memory is just with the non-inlined "get_user()", and the inlined version didn't even historically exist. The normal "get_user()" case is handled by external hand-written asm in arch/x86/lib/getuser.S that doesn't have either of these issues. There were two independent bugs in __get_user_asm_u64(): - it still did the STAC/CLAC user space access marking, even though that is now done by the wrapper macros, see commit 11f1a4b9 ("x86: reorganize SMAP handling in user space accesses"). This didn't result in a semantic error, it just means that the inlined optimized version was hugely less efficient than the allegedly slower standard version, since the CLAC/STAC overhead is quite high on modern Intel CPU's. - the double register %eax/%edx was marked as an output, but the %eax part of it was touched early in the asm, and could thus clobber other inputs to the asm that gcc didn't expect it to touch. In particular, that meant that the generated code could look like this: mov (%eax),%eax mov 0x4(%eax),%edx where the load of %edx obviously was _supposed_ to be from the 32-bit word that followed the source of %eax, but because %eax was overwritten by the first instruction, the source of %edx was basically random garbage. The fixes are trivial: remove the extraneous STAC/CLAC entries, and mark the 64-bit output as early-clobber to let gcc know that no inputs should alias with the output register. Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Benjamin LaHaise <bcrl@kvack.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: stable@kernel.org # v4.8+ Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Linus Torvalds authored
Al noticed that unsafe_put_user() had type problems, and fixed them in commit a7cc722f ("fix unsafe_put_user()"), which made me look more at those functions. It turns out that unsafe_get_user() had a type issue too: it limited the largest size of the type it could handle to "unsigned long". Which is fine with the current users, but doesn't match our existing normal get_user() semantics, which can also handle "u64" even when that does not fit in a long. While at it, also clean up the type cast in unsafe_put_user(). We actually want to just make it an assignment to the expected type of the pointer, because we actually do want warnings from types that don't convert silently. And it makes the code more readable by not having that one very long and complex line. [ This patch might become stable material if we ever end up back-porting any new users of the unsafe uaccess code, but as things stand now this doesn't matter for any current existing uses. ] Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-