Update the self-protection documentation, to mention also the use of the __wr_after_init attribute.
Signed-off-by: Igor Stoppa <igor.sto...@huawei.com> CC: Andy Lutomirski <l...@amacapital.net> CC: Nadav Amit <nadav.a...@gmail.com> CC: Matthew Wilcox <wi...@infradead.org> CC: Peter Zijlstra <pet...@infradead.org> CC: Kees Cook <keesc...@chromium.org> CC: Dave Hansen <dave.han...@linux.intel.com> CC: Mimi Zohar <zo...@linux.vnet.ibm.com> CC: Thiago Jung Bauermann <bauer...@linux.ibm.com> CC: Ahmed Soliman <ahmedsoli...@mena.vt.edu> CC: linux-integr...@vger.kernel.org CC: kernel-harden...@lists.openwall.com CC: linux...@kvack.org CC: linux-kernel@vger.kernel.org --- Documentation/security/self-protection.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Documentation/security/self-protection.rst b/Documentation/security/self-protection.rst index f584fb74b4ff..df2614bc25b9 100644 --- a/Documentation/security/self-protection.rst +++ b/Documentation/security/self-protection.rst @@ -84,12 +84,14 @@ For variables that are initialized once at ``__init`` time, these can be marked with the (new and under development) ``__ro_after_init`` attribute. -What remains are variables that are updated rarely (e.g. GDT). These -will need another infrastructure (similar to the temporary exceptions -made to kernel code mentioned above) that allow them to spend the rest -of their lifetime read-only. (For example, when being updated, only the -CPU thread performing the update would be given uninterruptible write -access to the memory.) +Others, which are statically allocated, but still need to be updated +rarely, can be marked with the ``__wr_after_init`` attribute. + +The update mechanism must avoid exposing the data to rogue alterations +during the update. For example, only the CPU thread performing the update +would be given uninterruptible write access to the memory. + +Currently there is no protection available for data allocated dynamically. Segregation of kernel memory from userspace memory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 2.19.1