From: Linuxppc-dev Till Smejkal
Sent: 13 March 2017 22:14
The only way until now to create a new memory map was via the exported
function 'mm_alloc'. Unfortunately, this function not only allocates a ne=
w
memory map, but also completely initializes it. However, with the
introduction of first class virtual address spaces, some initialization
steps done in 'mm_alloc' are not applicable to the memory maps needed for
this feature and hence would lead to errors in the kernel code.
=20
Instead of introducing a new function that can allocate and initialize
memory maps for first class virtual address spaces and potentially
duplicate some code, I decided to split the mm_alloc function as well as
the 'mm_init' function that it uses.
=20
Now there are four functions exported instead of only one. The new
'mm_alloc' function only allocates a new mm_struct and zeros it out. If o=
ne
want to have the old behavior of mm_alloc one can use the newly introduce=
d
function 'mm_alloc_and_setup' which not only allocates a new mm_struct bu=
t
also fully initializes it.
...
That looks like bugs waiting to happen.
You need unchanged code to fail to compile.
David