lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 20 Nov 2020 14:35:51 +0000 From: Will Deacon <will@...nel.org> To: linux-kernel@...r.kernel.org Cc: kernel-team@...roid.com, Will Deacon <will@...nel.org>, Catalin Marinas <catalin.marinas@....com>, Yu Zhao <yuzhao@...gle.com>, Minchan Kim <minchan@...nel.org>, Peter Zijlstra <peterz@...radead.org>, Linus Torvalds <torvalds@...ux-foundation.org>, Anshuman Khandual <anshuman.khandual@....com>, linux-mm@...ck.org, linux-arm-kernel@...ts.infradead.org Subject: [PATCH 0/6] tlb: Fix access and (soft-)dirty bit management Hi all, This series attempts to fix some issues relating to our access and (soft-)dirty bit management relating to TLB invalidation. It's a bit all over the place because I kept running into new issues as I was trying to figure it out. The first patch fixes a crash we've seen in practice. The other patches are all addressing things that I found by code inspection and I would _really_ appreciate others having a look. In particular, what can go wrong in practice if a CPU has a stale, writable entry in the TLB for a pte which is !pte_write()? It feels intuitively bad, but I couldn't find anywhere that would explode (the CoW path looks alright, for example). Cheers, Will Cc: Catalin Marinas <catalin.marinas@....com> Cc: Yu Zhao <yuzhao@...gle.com> Cc: Minchan Kim <minchan@...nel.org> Cc: Peter Zijlstra <peterz@...radead.org> Cc: Linus Torvalds <torvalds@...ux-foundation.org> Cc: Andrew Morton <akpm@...ux-foundation.org Cc: Anshuman Khandual <anshuman.khandual@....com> Cc: linux-mm@...ck.org Cc: linux-arm-kernel@...ts.infradead.org --->8 Will Deacon (6): arm64: pgtable: Fix pte_accessible() arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect() tlb: mmu_gather: Remove unused start/end arguments from tlb_finish_mmu() mm: proc: Invalidate TLB after clearing soft-dirty page state tlb: mmu_gather: Introduce tlb_gather_mmu_fullmm() mm: proc: Avoid fullmm flush for young/dirty bit toggling arch/arm64/include/asm/pgtable.h | 31 +++++++++++++++---------------- arch/ia64/include/asm/tlb.h | 2 +- arch/x86/kernel/ldt.c | 2 +- fs/exec.c | 2 +- fs/proc/task_mmu.c | 22 +++++++++++++--------- include/asm-generic/tlb.h | 6 ++++-- include/linux/mm_types.h | 4 ++-- mm/hugetlb.c | 2 +- mm/madvise.c | 6 +++--- mm/memory.c | 4 ++-- mm/mmap.c | 6 +++--- mm/mmu_gather.c | 21 +++++++++++++++------ mm/oom_kill.c | 4 ++-- 13 files changed, 63 insertions(+), 49 deletions(-) -- 2.29.2.454.gaff20da3a2-goog
Powered by blists - more mailing lists