12be96f | Alexander Potapenko | 15 May 2018, 13:32:36 UTC | kmsan: handle crypto_cipher_encrypt_one()/crypto_cipher_decrypt_one() These functions touch memory one block at a time. Because they're often implemented in assembly, we just unpoison the output blocks and check the inputs. | 28 August 2018, 10:29:17 UTC |
2a08666 | Alexander Potapenko | 15 May 2018, 12:08:10 UTC | kmsan: introduce kmsan_clear_user_page() Use it to unpoison pages in clear_user_highpage(). This should fix a number of false positives. It's not clear yet, whether shadow and origin pages can be in high memory, probably no. | 28 August 2018, 10:29:17 UTC |
e30ea2c | Alexander Potapenko | 14 May 2018, 12:50:33 UTC | kmsan: don't panic if copy_to_user() succeeded only partially Let the caller care about this. | 28 August 2018, 10:29:16 UTC |
575b4c2 | Alexander Potapenko | 14 May 2018, 12:50:09 UTC | kmsan: fix false positives in do_error_trap() Unpoison |regs| in do_error_trap(). | 28 August 2018, 10:29:16 UTC |
9a900b6 | Alexander Potapenko | 11 May 2018, 08:24:47 UTC | kmsan: don't instrument code unwinding the stack | 28 August 2018, 10:29:16 UTC |
3cab6e8 | Alexander Potapenko | 08 May 2018, 16:24:12 UTC | kmsan: bump .config.example to v4.17-rc3 | 28 August 2018, 10:29:16 UTC |
83bb4e5 | Dmitry Vyukov | 22 April 2018, 15:05:22 UTC | kmsan: add initialization for shmem pages Maybe we need to instrument clear_highpage/clear_page instead. But for now this fixes the most common source of false positives. | 28 August 2018, 10:29:16 UTC |
3c860af | Dmitry Vyukov | 22 April 2018, 15:02:35 UTC | kmsan: fix NULL deref bh can still be NULL. Top crasher with syzkaller. | 28 August 2018, 10:29:16 UTC |
b770f9e | Dmitry Vyukov | 21 April 2018, 13:50:22 UTC | kmsan: disable assembly checksums Checksum functions implemented in assembly produce large number of false positives. There are generic functions available that do not use assembly. Switch to them under KMSAN. | 28 August 2018, 10:29:16 UTC |
d4f2395 | Dmitry Vyukov | 21 April 2018, 13:49:46 UTC | kmsan: disable reporting in stack unwinding Stack unwinding produces lots of false positives. | 28 August 2018, 10:29:16 UTC |
4400670 | Dmitry Vyukov | 21 April 2018, 13:48:58 UTC | kmsan: disable memcpy-param-overlap check There are known false positives. | 28 August 2018, 10:29:16 UTC |
4dd7f79 | Dmitry Vyukov | 16 April 2018, 08:42:26 UTC | mm/kmsan: fix origin calculation in kmsan_internal_check_memory | 28 August 2018, 10:29:16 UTC |
be4ee2e | parkerduckworth | 09 April 2018, 22:15:58 UTC | readme typo | 28 August 2018, 10:29:16 UTC |
3990aa1 | Alexander Potapenko | 06 April 2018, 16:24:31 UTC | kmsan: temporarily disable visitAsmInstruction() to help syzbot | 28 August 2018, 10:29:16 UTC |
84458e0 | Alexander Potapenko | 02 January 2018, 12:33:53 UTC | kmsan: suppress false positives in assembly routines TODO(glider): handle the assembly in the compiler properly instead | 28 August 2018, 10:29:16 UTC |
3eb4d63 | Alexander Potapenko | 02 January 2018, 12:42:04 UTC | kmsan: suppress false positives in RNG functions | 28 August 2018, 10:29:15 UTC |
86aa950 | Alexander Potapenko | 20 September 2017, 00:24:22 UTC | kmsan: suppress a false positive in __down_write_trylock() | 28 August 2018, 10:29:15 UTC |
8a8fe2a | Alexander Potapenko | 02 February 2018, 16:26:50 UTC | kmsan: suppress false positives in cmpxchg and percpu operations | 28 August 2018, 10:29:15 UTC |
62c9792 | Alexander Potapenko | 06 April 2018, 15:47:51 UTC | kmsan: drop log2_next() | 28 August 2018, 10:29:15 UTC |
a3a5d43 | Alexander Potapenko | 06 April 2018, 14:56:31 UTC | kmsan: don't instrument kernel/module.c | 28 August 2018, 10:29:15 UTC |
c13d9a1 | Alexander Potapenko | 06 April 2018, 13:27:19 UTC | kmsan: bump patches to LLVM r329391, ignore big asm() accesses Don't unpoison memory locations greater than 16 bytes in visitAsmInstruction() | 28 August 2018, 10:29:15 UTC |
89ef946 | Alexander Potapenko | 06 April 2018, 11:40:58 UTC | kmsan: LLVM: don't unpoison memory locations >4096 bytes in asm | 28 August 2018, 10:29:15 UTC |
5d3f00e | Alexander Potapenko | 06 April 2018, 11:01:00 UTC | kmsan: replace %p with %px, also drop some dead pr_errs() | 28 August 2018, 10:29:15 UTC |
dbb8efe | Alexander Potapenko | 05 April 2018, 09:38:22 UTC | kmsan: align dummy metadata pages on PAGE_SIZE | 28 August 2018, 10:29:15 UTC |
2fbfdff | Alexander Potapenko | 04 April 2018, 14:13:48 UTC | kmsan: drop an occasionally committed debug line | 28 August 2018, 10:29:15 UTC |
ccc1418 | Alexander Potapenko | 04 April 2018, 14:06:54 UTC | kmsan: don't instrument big percpu arrays (temporary workaround) This is a hotfix for syzbot. The current Clang version dies with the following error message: 1. <eof> parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module 'arch/x86/mm/cpu_entry_area.c'. 4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@setup_cpu_entry_areas' clang-7: error: unable to execute command: Aborted when attempting to build the kernel with extended stack size (see 0f35ce79c491cbf0). This can be fixed in the compiler, but for now it's faster to disable instrumentation for arch/x86/kernel/setup_percpu.c and arch/x86/mm/cpu_entry_area.c | 28 August 2018, 10:29:14 UTC |
8e1e7ab | Alexander Potapenko | 04 April 2018, 12:38:34 UTC | kmsan: hotfix page_64_types.h | 28 August 2018, 10:29:14 UTC |
cf157ba | Alexander Potapenko | 04 April 2018, 11:59:47 UTC | kmsan: double the stack size again (4x from normal stack size) | 28 August 2018, 10:29:14 UTC |
08968b8 | Alexander Potapenko | 03 April 2018, 20:16:39 UTC | kmsan: drop unused_msan_check_range() | 28 August 2018, 10:29:14 UTC |
8e7f5fa | Alexander Potapenko | 03 April 2018, 15:30:09 UTC | kmsan: minor report improvements - capitalize the first words on lines - print empty lines between stacks - more understandable text | 28 August 2018, 10:29:14 UTC |
e912451 | Alexander Potapenko | 03 April 2018, 14:58:49 UTC | kmsan: support panic_on_warn | 28 August 2018, 10:29:14 UTC |
d05b535 | Alexander Potapenko | 26 March 2018, 08:28:02 UTC | kmsan: provide __force_order to fix linkage New KMSAN instrumentation pass requires the fake __force_order variable to be present at link time | 28 August 2018, 10:29:14 UTC |
448a64b | Alexander Potapenko | 13 March 2018, 11:46:59 UTC | kmsan: unpoison pages allocated for reading in bio_copy_kern() SCSI devices overwrite these pages with data that we consider initialized. It's hard to find the exact place where it happens, so just unpoison the pages in advance. Sketch test case: int main() { int fd = open("/dev/sg0", O_RDWR); struct scsi_ioctl_command *cmd; cmd = calloc(1, sizeof(struct scsi_ioctl_command) + 128); cmd->outlen = 0x4a; ioctl(fd, /*SCSI_IOCTL_SEND_COMMAND*/1, cmd); fprintf(stderr, "data: %p\n", cmd->data); return 0; } | 28 August 2018, 10:29:14 UTC |
078219b | Alexander Potapenko | 12 March 2018, 17:30:38 UTC | kmsan: handle pinning userspace memory to the kernel Unpoison the kernel pages that correspond to userspace pages used for pipe input. Rough testcase: int main() { mmap(0x20000000, 0x1000000, 3, 0x32, -1, 0); void *from = 0x20000000; void *to = 0x20001000; int fd[2]; pipe2(fd, 0); memcpy((void*)from, "A", 1); struct iovec iov; iov.iov_base = from; iov.iov_len = SIZE; vmsplice(fd[1], &iov, 1, 0); struct iovec iov2; iov2.iov_base = to; iov2.iov_len = SIZE; vmsplice(fd[0], &iov2, 1, 0); dump_buf(iov2.iov_base, SIZE); return 0; } | 28 August 2018, 10:29:14 UTC |
c6c3f31 | Alexander Potapenko | 07 March 2018, 14:06:01 UTC | kmsan: unpoison buffers in dma_map_single_attrs() and dma_map_sg_attrs() There used to be kmemcheck annotations in these functions, see 4950276672fce5c241857540f8561c440663673d ("kmemcheck: remove annotations") | 28 August 2018, 10:29:14 UTC |
84f0ce5 | Alexander Potapenko | 07 March 2018, 12:52:02 UTC | kmsan: unpoison virtio buffer after DMA unmap | 28 August 2018, 10:29:14 UTC |
39486ba | Alexander Potapenko | 02 February 2018, 17:45:06 UTC | kmsan: temporarily disable reports with empty origins to help syzkaller | 28 August 2018, 10:29:14 UTC |
0746cad | Alexander Potapenko | 02 February 2018, 14:49:01 UTC | kmsan: don't instrument arch/x86/kernel/cpu/common.c When running with more than one CPU, IRQ stack smashes the stackdepot pages, presumably somewhere inside load_percpu_segment(). | 28 August 2018, 10:29:14 UTC |
44b62d4 | Alexander Potapenko | 30 January 2018, 14:22:07 UTC | kmsan: print only one report for a series of uninitialized bytes | 28 August 2018, 10:29:14 UTC |
534a357 | Alexander Potapenko | 30 January 2018, 12:45:09 UTC | kmsan: replaced debugging %p's with %px | 28 August 2018, 10:29:14 UTC |
8a3baa5 | Alexander Potapenko | 02 January 2018, 10:46:17 UTC | kmsan: docs and README.md | 28 August 2018, 10:29:14 UTC |
c333cdb | Alexander Potapenko | 02 January 2018, 10:47:47 UTC | kmsan: Clang and LLVM patches for r320373 | 28 August 2018, 10:29:13 UTC |
6027727 | Alexander Potapenko | 29 January 2018, 14:22:17 UTC | kmsan: fix the deep parameter usage in kmsan_report() | 28 August 2018, 10:29:13 UTC |
17d92ca | Alexander Potapenko | 29 January 2018, 11:34:15 UTC | kmsan: add example config | 28 August 2018, 10:29:13 UTC |
bbfd386 | Alexander Potapenko | 09 January 2018, 16:21:26 UTC | kmsan: unpoison pt_regs in smp_apic_timer_interrupt() | 28 August 2018, 10:29:13 UTC |
13fa93a | Alexander Potapenko | 22 September 2017, 11:11:34 UTC | kmsan: unpoison pt_regs in do_general_protection()/trace_do_page_fault() | 28 August 2018, 10:29:13 UTC |
a4b964c | Alexander Potapenko | 09 January 2018, 16:18:11 UTC | kmsan: don't instrument stackdepot | 28 August 2018, 10:29:13 UTC |
60994bf | Alexander Potapenko | 09 January 2018, 16:17:50 UTC | kmsan: don't instrument low-level stuff | 28 August 2018, 10:29:13 UTC |
461decb | Alexander Potapenko | 09 January 2018, 16:11:27 UTC | kmsan: support the ORC unwinder | 28 August 2018, 10:29:13 UTC |
811f29d | Alexander Potapenko | 22 December 2017, 12:43:40 UTC | kmsan: unpoison the data copied from network devices to skb | 28 August 2018, 10:29:13 UTC |
c26c7f7 | Alexander Potapenko | 22 December 2017, 13:30:06 UTC | kmsan: don't track pages allocated in bio_copy_user_iov() | 28 August 2018, 10:29:13 UTC |
a0685a1 | Alexander Potapenko | 01 September 2017, 18:22:52 UTC | kmsan: unpoison random data from chacha20_block() | 28 August 2018, 10:29:13 UTC |
968f87a | Alexander Potapenko | 07 April 2017, 12:12:49 UTC | kmsan: suppress reports in get_wchan() get_wchan() reads the thread stack, which may be uninitialized. | 28 August 2018, 10:29:13 UTC |
b68c538 | Alexander Potapenko | 09 January 2018, 14:37:11 UTC | kmsan: ignore do_page_fault() Added __attribute__((no_sanitize("kernel-memory"))) | 28 August 2018, 10:29:13 UTC |
14d3904 | Alexander Potapenko | 22 December 2017, 12:50:35 UTC | kmsan: don't track pages allocated by __do_page_cache_readahead() | 28 August 2018, 10:29:13 UTC |
23254a5 | Alexander Potapenko | 22 December 2017, 11:59:41 UTC | kmsan: unpoison the memory returned by read_dev_sector() | 28 August 2018, 10:29:13 UTC |
fe709e1 | Alexander Potapenko | 22 December 2017, 13:01:46 UTC | kmsan: unpoison data copied from block devices. | 28 August 2018, 10:29:12 UTC |
77068dc | Alexander Potapenko | 09 January 2018, 14:15:24 UTC | kmsan: assume scsi_execute() returns initialized data. | 28 August 2018, 10:29:12 UTC |
ddbc53b | Alexander Potapenko | 01 September 2017, 18:08:18 UTC | [BUG] nvme: fix use of uninit variable Introduced by https://github.com/torvalds/linux/commit/6bfe04255d5ed5643ee4c2d9b09b337398f8cb6a TODO(glider): report upstream | 28 August 2018, 10:29:12 UTC |
013c9f9 | Alexander Potapenko | 04 September 2017, 12:50:09 UTC | kmsan: whack-a-moleing the false positives | 28 August 2018, 10:29:12 UTC |
d34b651 | Alexander Potapenko | 18 April 2017, 13:16:50 UTC | kmsan: unpoison the result of usb_start_wait_urb() | 28 August 2018, 10:29:12 UTC |
51f859f | Alexander Potapenko | 26 July 2017, 13:13:48 UTC | kmsan: don't instrument functions that switch tasks | 28 August 2018, 10:29:12 UTC |
671e52a | Alexander Potapenko | 26 July 2017, 13:12:44 UTC | kmsan: unpoison syscall arguments | 28 August 2018, 10:29:12 UTC |
e2b1743 | Alexander Potapenko | 22 December 2017, 13:15:07 UTC | kmsan: handle copy_{from,to}_user_page() | 28 August 2018, 10:29:12 UTC |
788992a | Alexander Potapenko | 02 January 2018, 12:38:17 UTC | kmsan: handle copy_to_user() and copy_from_user() | 28 August 2018, 10:29:12 UTC |
4a1a427 | Alexander Potapenko | 26 July 2017, 09:05:03 UTC | kmsan: don't instrument __switch_to() | 28 August 2018, 10:29:12 UTC |
25181a5 | Alexander Potapenko | 02 January 2018, 12:23:32 UTC | kmsan: add KMSAN hooks to SLAB and SLUB allocators | 28 August 2018, 10:29:11 UTC |
3af786e | Alexander Potapenko | 18 May 2017, 14:45:11 UTC | kmsan: disable slub_debug with KMSAN | 28 August 2018, 10:26:47 UTC |
b67fbd5 | Alexander Potapenko | 25 July 2017, 15:40:50 UTC | kmsan: alloc KMSAN shadow for bootmem | 28 August 2018, 10:26:47 UTC |
d35af0e | Alexander Potapenko | 02 January 2018, 11:56:00 UTC | kmsan: add lib/test_kmsan.c | 28 August 2018, 10:26:47 UTC |
9498f18 | Alexander Potapenko | 12 April 2017, 16:41:41 UTC | kmsan: suppress (true) reports on self-XORed BPF registers This turns out to be undefined behavior in C11, but let's not open that box for now. | 28 August 2018, 10:26:47 UTC |
800ff75 | Alexander Potapenko | 02 January 2018, 11:54:18 UTC | kmsan: enable KMSAN in start_kernel() | 28 August 2018, 10:26:47 UTC |
195a1f3 | Alexander Potapenko | 06 April 2017, 14:55:13 UTC | kmsan: use __msan_memcpy() instead of __builtin_memcpy() | 28 August 2018, 10:26:47 UTC |
e64e3e0 | Alexander Potapenko | 12 April 2017, 12:00:04 UTC | kmsan: disable KMSAN within uart_write() Avoid calling __msan_warning() within the UART critical section, as it will cause a deadlock. Instead, check the arguments upon function entry. | 28 August 2018, 10:26:47 UTC |
a11d920 | Alexander Potapenko | 25 July 2017, 14:43:28 UTC | kmsan: call kmsan_thread_create() and kmsan_task_exit() | 28 August 2018, 10:26:47 UTC |
a52b03b | Alexander Potapenko | 02 January 2018, 11:51:55 UTC | kmsan: hooks for shadow initialization | 28 August 2018, 10:26:47 UTC |
72781c5 | Alexander Potapenko | 02 January 2018, 11:43:52 UTC | kmsan: route memcpy() calls into __msan_memcpy() | 28 August 2018, 10:26:46 UTC |
672f58a | Alexander Potapenko | 06 April 2017, 13:06:28 UTC | kmsan: increase stack order in KMSAN builds | 28 August 2018, 10:26:46 UTC |
fe04635 | Alexander Potapenko | 25 July 2017, 14:21:58 UTC | kmsan: config changes | 28 August 2018, 10:26:46 UTC |
8720c90 | Alexander Potapenko | 02 January 2018, 11:30:46 UTC | kmsan: add KMSAN runtime Also add KMSAN state to struct page and struct task_struct, and introduce |logbuf_lock_is_locked|. | 28 August 2018, 10:26:46 UTC |
fa4d725 | Alexander Potapenko | 02 January 2018, 11:03:09 UTC | kmsan: add writeups | 28 August 2018, 10:26:46 UTC |
076e421 | Alexander Potapenko | 25 July 2017, 13:48:15 UTC | kmsan: gfp: introduce __GFP_NO_KMSAN_SHADOW | 28 August 2018, 10:26:46 UTC |
5b394b2 | Linus Torvalds | 26 August 2018, 21:11:59 UTC | Linux 4.19-rc1 | 26 August 2018, 21:11:59 UTC |
b933d6e | Linus Torvalds | 26 August 2018, 20:39:05 UTC | Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer update from Thomas Gleixner: "New defines for the compat time* types so they can be shared between 32bit and 64bit builds. Not used yet, but merging them now allows the actual conversions to be merged through different maintainer trees without dependencies We still have compat interfaces for 32bit on 64bit even with the new 2038 safe timespec/val variants because pointer size is different. And for the old style timespec/val interfaces we need yet another 'compat' interface for both 32bit native and 32bit on 64bit" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: y2038: Provide aliases for compat helpers | 26 August 2018, 20:39:05 UTC |
aba16dc | Linus Torvalds | 26 August 2018, 18:48:42 UTC | Merge branch 'ida-4.19' of git://git.infradead.org/users/willy/linux-dax Pull IDA updates from Matthew Wilcox: "A better IDA API: id = ida_alloc(ida, GFP_xxx); ida_free(ida, id); rather than the cumbersome ida_simple_get(), ida_simple_remove(). The new IDA API is similar to ida_simple_get() but better named. The internal restructuring of the IDA code removes the bitmap preallocation nonsense. I hope the net -200 lines of code is convincing" * 'ida-4.19' of git://git.infradead.org/users/willy/linux-dax: (29 commits) ida: Change ida_get_new_above to return the id ida: Remove old API test_ida: check_ida_destroy and check_ida_alloc test_ida: Convert check_ida_conv to new API test_ida: Move ida_check_max test_ida: Move ida_check_leaf idr-test: Convert ida_check_nomem to new API ida: Start new test_ida module target/iscsi: Allocate session IDs from an IDA iscsi target: fix session creation failure handling drm/vmwgfx: Convert to new IDA API dmaengine: Convert to new IDA API ppc: Convert vas ID allocation to new IDA API media: Convert entity ID allocation to new IDA API ppc: Convert mmu context allocation to new IDA API Convert net_namespace to new IDA API cb710: Convert to new IDA API rsxx: Convert to new IDA API osd: Convert to new IDA API sd: Convert to new IDA API ... | 26 August 2018, 18:48:42 UTC |
c4726e7 | Linus Torvalds | 26 August 2018, 18:41:08 UTC | Merge tag 'gcc-plugins-v4.19-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull gcc plugin fix from Kees Cook: "Lift gcc test into Kconfig. This is for better behavior when the kernel is built with Clang, reported by Stefan Agner" * tag 'gcc-plugins-v4.19-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: gcc-plugins: Disable when building under Clang | 26 August 2018, 18:41:08 UTC |
d207ea8 | Linus Torvalds | 26 August 2018, 18:25:21 UTC | Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf updates from Thomas Gleixner: "Kernel: - Improve kallsyms coverage - Add x86 entry trampolines to kcore - Fix ARM SPE handling - Correct PPC event post processing Tools: - Make the build system more robust - Small fixes and enhancements all over the place - Update kernel ABI header copies - Preparatory work for converting libtraceevnt to a shared library - License cleanups" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (100 commits) tools arch: Update arch/x86/lib/memcpy_64.S copy used in 'perf bench mem memcpy' tools arch x86: Update tools's copy of cpufeatures.h perf python: Fix pyrf_evlist__read_on_cpu() interface perf mmap: Store real cpu number in 'struct perf_mmap' perf tools: Remove ext from struct kmod_path perf tools: Add gzip_is_compressed function perf tools: Add lzma_is_compressed function perf tools: Add is_compressed callback to compressions array perf tools: Move the temp file processing into decompress_kmodule perf tools: Use compression id in decompress_kmodule() perf tools: Store compression id into struct dso perf tools: Add compression id into 'struct kmod_path' perf tools: Make is_supported_compression() static perf tools: Make decompress_to_file() function static perf tools: Get rid of dso__needs_decompress() call in __open_dso() perf tools: Get rid of dso__needs_decompress() call in symbol__disassemble() perf tools: Get rid of dso__needs_decompress() call in read_object_code() tools lib traceevent: Change to SPDX License format perf llvm: Allow passing options to llc in addition to clang perf parser: Improve error message for PMU address filters ... | 26 August 2018, 18:25:21 UTC |
2a8a2b7 | Linus Torvalds | 26 August 2018, 17:13:21 UTC | Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: - Correct the L1TF fallout on 32bit and the off by one in the 'too much RAM for protection' calculation. - Add a helpful kernel message for the 'too much RAM' case - Unbreak the VDSO in case that the compiler desides to use indirect jumps/calls and emits retpolines which cannot be resolved because the kernel uses its own thunks, which does not work for the VDSO. Make it use the builtin thunks. - Re-export start_thread() which was unexported when the 32/64bit implementation was unified. start_thread() is required by modular binfmt handlers. - Trivial cleanups * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/speculation/l1tf: Suggest what to do on systems with too much RAM x86/speculation/l1tf: Fix off-by-one error when warning that system has too much RAM x86/kvm/vmx: Remove duplicate l1d flush definitions x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit x86/process: Re-export start_thread() x86/mce: Add notifier_block forward declaration x86/vdso: Fix vDSO build if a retpoline is emitted | 26 August 2018, 17:13:21 UTC |
de37503 | Linus Torvalds | 26 August 2018, 16:55:28 UTC | Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq update from Thomas Gleixner: "A small set of updats/fixes for the irq subsystem: - Allow GICv3 interrupts to be configured as wake-up sources to enable wakeup from suspend - Make the error handling of the STM32 irqchip init function work - A set of small cleanups and improvements" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v3: Allow interrupt to be configured as wake-up sources irqchip/tango: Set irq handler and data in one go dt-bindings: irqchip: renesas-irqc: Document r8a774a1 support irqchip/s3c24xx: Remove unneeded comparison of unsigned long to 0 irqchip/stm32: Fix init error handling irqchip/bcm7038-l1: Hide cpu offline callback when building for !SMP | 26 August 2018, 16:55:28 UTC |
a9ce323 | Linus Torvalds | 26 August 2018, 16:47:00 UTC | Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull licking update from Thomas Gleixner: "Mark the switch cases which fall through to the next case with the proper comment so the fallthrough compiler checks can be enabled" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: futex: Mark expected switch fall-throughs | 26 August 2018, 16:47:00 UTC |
2923b27 | Linus Torvalds | 26 August 2018, 01:43:59 UTC | Merge tag 'libnvdimm-for-4.19_dax-memory-failure' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm memory-failure update from Dave Jiang: "As it stands, memory_failure() gets thoroughly confused by dev_pagemap backed mappings. The recovery code has specific enabling for several possible page states and needs new enabling to handle poison in dax mappings. In order to support reliable reverse mapping of user space addresses: 1/ Add new locking in the memory_failure() rmap path to prevent races that would typically be handled by the page lock. 2/ Since dev_pagemap pages are hidden from the page allocator and the "compound page" accounting machinery, add a mechanism to determine the size of the mapping that encompasses a given poisoned pfn. 3/ Given pmem errors can be repaired, change the speculatively accessed poison protection, mce_unmap_kpfn(), to be reversible and otherwise allow ongoing access from the kernel. A side effect of this enabling is that MADV_HWPOISON becomes usable for dax mappings, however the primary motivation is to allow the system to survive userspace consumption of hardware-poison via dax. Specifically the current behavior is: mce: Uncorrected hardware memory error in user-access at af34214200 {1}[Hardware Error]: It has been corrected by h/w and requires no further action mce: [Hardware Error]: Machine check events logged {1}[Hardware Error]: event severity: corrected Memory failure: 0xaf34214: reserved kernel page still referenced by 1 users [..] Memory failure: 0xaf34214: recovery action for reserved kernel page: Failed mce: Memory error not recovered <reboot> ...and with these changes: Injecting memory failure for pfn 0x20cb00 at process virtual address 0x7f763dd00000 Memory failure: 0x20cb00: Killing dax-pmd:5421 due to hardware memory corruption Memory failure: 0x20cb00: recovery action for dax page: Recovered Given all the cross dependencies I propose taking this through nvdimm.git with acks from Naoya, x86/core, x86/RAS, and of course dax folks" * tag 'libnvdimm-for-4.19_dax-memory-failure' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm: libnvdimm, pmem: Restore page attributes when clearing errors x86/memory_failure: Introduce {set, clear}_mce_nospec() x86/mm/pat: Prepare {reserve, free}_memtype() for "decoy" addresses mm, memory_failure: Teach memory_failure() about dev_pagemap pages filesystem-dax: Introduce dax_lock_mapping_entry() mm, memory_failure: Collect mapping size in collect_procs() mm, madvise_inject_error: Let memory_failure() optionally take a page reference mm, dev_pagemap: Do not clear ->mapping on final put mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages filesystem-dax: Set page->index device-dax: Set page->index device-dax: Enable page_mapping() device-dax: Convert to vmf_insert_mixed and vm_fault_t | 26 August 2018, 01:43:59 UTC |
828bf6e | Linus Torvalds | 26 August 2018, 01:13:10 UTC | Merge tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dave Jiang: "Collection of misc libnvdimm patches for 4.19 submission: - Adding support to read locked nvdimm capacity. - Change test code to make DSM failure code injection an override. - Add support for calculate maximum contiguous area for namespace. - Add support for queueing a short ARS when there is on going ARS for nvdimm. - Allow NULL to be passed in to ->direct_access() for kaddr and pfn params. - Improve smart injection support for nvdimm emulation testing. - Fix test code that supports for emulating controller temperature. - Fix hang on error before devm_memremap_pages() - Fix a bug that causes user memory corruption when data returned to user for ars_status. - Maintainer updates for Ross Zwisler emails and adding Jan Kara to fsdax" * tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm: libnvdimm: fix ars_status output length calculation device-dax: avoid hang on error before devm_memremap_pages() tools/testing/nvdimm: improve emulation of smart injection filesystem-dax: Do not request kaddr and pfn when not required md/dm-writecache: Don't request pointer dummy_addr when not required dax/super: Do not request a pointer kaddr when not required tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access() s390, dcssblk: kaddr and pfn can be NULL to ->direct_access() libnvdimm, pmem: kaddr and pfn can be NULL to ->direct_access() acpi/nfit: queue issuing of ars when an uc error notification comes in libnvdimm: Export max available extent libnvdimm: Use max contiguous area for namespace size MAINTAINERS: Add Jan Kara for filesystem DAX MAINTAINERS: update Ross Zwisler's email address tools/testing/nvdimm: Fix support for emulating controller temperature tools/testing/nvdimm: Make DSM failure code injection an override acpi, nfit: Prefer _DSM over _LSR for namespace label reads libnvdimm: Introduce locked DIMM capacity support | 26 August 2018, 01:13:10 UTC |
b326272 | Linus Torvalds | 25 August 2018, 21:12:36 UTC | Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC late updates from Olof Johansson: "A couple of late-merged changes that would be useful to get in this merge window: - Driver support for reset of audio complex on Meson platforms. The audio driver went in this merge window, and these changes have been in -next for a while (just not in our tree). - Power management fixes for IOMMU on Rockchip platforms, getting closer to kexec working on them, including Chromebooks. - Another pass updating "arm,psci" -> "psci" for some properties that have snuck in since last time it was done" * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: iommu/rockchip: Move irq request past pm_runtime_enable iommu/rockchip: Handle errors returned from PM framework arm64: rockchip: Force CONFIG_PM on Rockchip systems ARM: rockchip: Force CONFIG_PM on Rockchip systems arm64: dts: Fix various entry-method properties to reflect documentation reset: imx7: Fix always writing bits as 0 reset: meson: add meson audio arb driver reset: meson: add dt-bindings for meson-axg audio arb | 25 August 2018, 21:12:36 UTC |
1bc2767 | Linus Torvalds | 25 August 2018, 20:40:38 UTC | Merge tag 'kbuild-v4.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull more Kbuild updates from Masahiro Yamada: - add build_{menu,n,g,x}config targets for compile-testing Kconfig - fix and improve recursive dependency detection in Kconfig - fix parallel building of menuconfig/nconfig - fix syntax error in clang-version.sh - suppress distracting log from syncconfig - remove obsolete "rpm" target - remove VMLINUX_SYMBOL(_STR) macro entirely - fix microblaze build with CONFIG_DYNAMIC_FTRACE - move compiler test for dead code/data elimination to Kconfig - rename well-known LDFLAGS variable to KBUILD_LDFLAGS - misc fixes and cleanups * tag 'kbuild-v4.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: rename LDFLAGS to KBUILD_LDFLAGS kbuild: pass LDFLAGS to recordmcount.pl kbuild: test dead code/data elimination support in Kconfig initramfs: move gen_initramfs_list.sh from scripts/ to usr/ vmlinux.lds.h: remove stale <linux/export.h> include export.h: remove VMLINUX_SYMBOL() and VMLINUX_SYMBOL_STR() Coccinelle: remove pci_alloc_consistent semantic to detect in zalloc-simple.cocci kbuild: make sorting initramfs contents independent of locale kbuild: remove "rpm" target, which is alias of "rpm-pkg" kbuild: Fix LOADLIBES rename in Documentation/kbuild/makefiles.txt kconfig: suppress "configuration written to .config" for syncconfig kconfig: fix "Can't open ..." in parallel build kbuild: Add a space after `!` to prevent parsing as file pattern scripts: modpost: check memory allocation results kconfig: improve the recursive dependency report kconfig: report recursive dependency involving 'imply' kconfig: error out when seeing recursive dependency kconfig: add build-only configurator targets scripts/dtc: consolidate include path options in Makefile | 25 August 2018, 20:40:38 UTC |
b8dcdab | Linus Torvalds | 25 August 2018, 20:30:23 UTC | Merge tag 'for-linus-20180825' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "A few small fixes for this merge window: - Locking imbalance fix for bcache (Shan Hai) - A few small fixes for wbt. One is a cleanup/prep, one is a fix for an existing issue, and the last two are fixes for changes that went into this merge window (me)" * tag 'for-linus-20180825' of git://git.kernel.dk/linux-block: blk-wbt: don't maintain inflight counts if disabled blk-wbt: fix has-sleeper queueing check blk-wbt: use wq_has_sleeper() for wq active check blk-wbt: move disable check into get_limit() bcache: release dc->writeback_lock properly in bch_writeback_thread() | 25 August 2018, 20:30:23 UTC |
db84abf | Linus Torvalds | 25 August 2018, 20:27:35 UTC | Merge tag 'upstream-4.19-rc1-fix' of git://git.infradead.org/linux-ubifs Pull UBIFS fix from Richard Weinberger: "Remove an empty file from UBIFS source" * tag 'upstream-4.19-rc1-fix' of git://git.infradead.org/linux-ubifs: ubifs: Remove empty file.h | 25 August 2018, 20:27:35 UTC |
04faac1 | Linus Torvalds | 25 August 2018, 20:17:53 UTC | Merge tag '4.19-rc-smb3' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "Three small SMB3 fixes, one for stable" * tag '4.19-rc-smb3' of git://git.samba.org/sfrench/cifs-2.6: cifs: update internal module version number for cifs.ko to 2.12 cifs: check kmalloc before use cifs: check if SMB2 PDU size has been padded and suppress the warning cifs: create a define for how many iovs we need for an SMB2_open() | 25 August 2018, 20:17:53 UTC |
1b2de5d | Linus Torvalds | 09 July 2018, 20:19:49 UTC | mm/cow: don't bother write protecting already write-protected pages This is not normally noticeable, but repeated forks are unnecessarily expensive because they repeatedly dirty the parent page tables during the page table copy operation. It's trivial to just avoid write protecting the page table entry if it was already not writable. This patch was inspired by https://bugzilla.kernel.org/show_bug.cgi?id=200447 which points to an ancient "waste time re-doing fork" issue in the presence of lots of signals. That bug was fixed by Eric Biederman's signal handling series culminating in commit c3ad2c3b02e9 ("signal: Don't restart fork when signals come in"), but the unnecessary work for repeated forks is still work just fixing, particularly since the fix is trivial. Cc: Eric Biederman <ebiederm@xmission.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | 25 August 2018, 20:15:03 UTC |
e0fcfe1 | Colin Ian King | 25 August 2018, 10:24:31 UTC | hpfs: remove unnecessary checks on the value of r when assigning error code At the point where r is being checked for different values, r is always going to be equal to 2 as the previous if statements jump to end or end1 if r is not 2. Hence the assignment to err can be simplified to just err an assignment without any checks on the value or r. Detected by CoverityScan, CID#1226737 ("Logically dead code") Signed-off-by: Colin Ian King <colin.king@canonical.com> Reviewed-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | 25 August 2018, 19:42:33 UTC |
7634ccd | Jens Axboe | 25 August 2018, 16:10:33 UTC | libata: maintainership update Tejun Heo wrote: > > I asked Jens whether he could take care of the libata tree and he > thankfully agreed, so, from now on, Jens will be the libata > maintainer. > > Thanks a lot! Thanks for your work in this area. I still remember the first linux storage summit we did in Vancouver 2001, Tejun was invited to talk about his libata error handling work. Before that, it was basically a crap shoot if we recovered properly or not... A lot of water has flown under the bridge since then! Here's an "official" patch. Linus, can you apply it? Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | 25 August 2018, 19:35:45 UTC |