On Wed, Oct 24, 2018 at 12:35:01AM +0300, Igor Stoppa wrote: > In some cases, all the data needing protection can be allocated from a pool > in one go, as directly writable, then initialized and protected. > The sequence is relatively short and it's acceptable to leave the entire > data set unprotected. > > In other cases, this is not possible, because the data will trickle over > a relatively long period of time, in a non predictable way, possibly for > the entire duration of the operations. > > For these cases, the safe approach is to have the memory already write > protected, when allocated. However, this will require replacing any > direct assignment with calls to functions that can perform write rare. > > Since lists are one of the most commonly used data structures in kernel, > they are a the first candidate for receiving write rare extensions. > > This patch implements basic functionality for altering said lists. > > Signed-off-by: Igor Stoppa <igor.stoppa@xxxxxxxxxx> > CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > CC: Kate Stewart <kstewart@xxxxxxxxxxxxxxxxxxx> > CC: "David S. Miller" <davem@xxxxxxxxxxxxx> > CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > CC: Philippe Ombredanne <pombredanne@xxxxxxxx> > CC: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> > CC: Josh Triplett <josh@xxxxxxxxxxxxxxxx> > CC: Steven Rostedt <rostedt@xxxxxxxxxxx> > CC: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> > CC: Lai Jiangshan <jiangshanlai@xxxxxxxxx> > CC: linux-kernel@xxxxxxxxxxxxxxx > --- > MAINTAINERS | 1 + > include/linux/prlist.h | 934 +++++++++++++++++++++++++++++++++++++++++ I'm not at all sure I understand the Changelog, or how it justifies duplicating almost 1k lines of code. Sure lists aren't the most complicated thing we have, but duplicating that much is still very _very_ bad form. Why are we doing this?