Re: [PATCH] random: move randomize_page() into mm where it belongs

Andrew Morton
2022-05-16T21:28:10Z

On Sat, 14 May 2022 14:05:56 +0200 "Jason A. Donenfeld" <Jason@zx2c4.com> wrote:

> randomize_page is an mm function. It is documented like one. It contains
> the history of one. It has the naming convention of one. It looks
> just like another very similar function in mm, randomize_stack_top().
> And it has always been maintained and updated by mm people. There is no
> need for it to be in random.c. In the "which shape does not look like
> the other ones" test, pointing to randomize_page() is correct.
>
> So move randomize_page() into mm/util.c, right next to the similar
> randomize_stack_top() function.
>
> This commit contains no actual code changes.

hm, does it make sense?

Probably randomize_page() (which used to be called randomize_range())
should have been called randomize_address(). Is it an MM function
then? Not really - it's simply an application of the random number
generator. So I think it's more a random thing than an MM thing.

> --- a/mm/util.c
> +++ b/mm/util.c
> @@ -343,6 +343,38 @@ unsigned long randomize_stack_top(unsigned long stack_top)
> #endif
> }
>
> +/**
> + * randomize_page - Generate a random, page aligned address

The patch assumes that drivers/char/random.o is always built into
vmlinux, which appears to be the case. If some space-conscious person
goes and makes random.o build-time optional then they'll need to make
the appropriate adjustments in util.c. I see no problems with this.