resource: Use 2-factor allocator calls
PATCH 1/1 resource: Use 2-factor allocator calls
As already done treewide, switch from open-coded multiplication to using 2-factor allocation helpers.
--- kernel/resource.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
kernel/resource.c +3 -3
@@ -453,7 +453,7 @@ int walk_system_ram_res_rev(u64 start, u64 end, void *arg,int ret =-1 ;/* create a list */ - rams =vmalloc (sizeof (struct resource ) * rams_size); + rams =vmalloc (array_size (rams_size,sizeof (struct resource )));if (!rams)return ret;
@@ -469,8 +469,8 @@ int walk_system_ram_res_rev(u64 start, u64 end, void *arg,int rams_new_size; rams_new_size = rams_size +16 ; - rams_new =vmalloc (sizeof (struct resource ) - * rams_new_size); + rams_new =vmalloc (array_size (rams_new_size, +sizeof (struct resource )));if (!rams_new) goto out;
Signature · 6 lines
2.17.1 -- Kees Cook Pixel Security
Quoted 3 lines · On Wed, 4 Jul 2018 10:31:53 -0700 Kees Cook <[email protected]> wrote:
As already done treewide, switch from open-coded multiplication to using 2-factor allocation helpers.
This is against resource-add-walk_system_ram_res_rev.patch
(http://lkml.kernel.org/r/[email protected]).
That patch is awaiting (for several months!) a v2. Will this be happening?
Hi Andrew, Kees,
About the implemention of walk_system_ram_res_rev(), it was posted by AKASHI firstly for his arm kexec_file adding, later he dropped it because he took other way and doesn't need walk_system_ram_res_rev() any more in his patchset.
Then I found my below patch needs a walk_system_ram_res_rev(),
kernel/kexec_file.c: load kernel at top of system RAM if required
so I took AKASHI's patch and posted a patchset including above patch, and AKASHI's patch, it can be seen here:
http://lkml.kernel.org/r/[email protected]
Then Andrew reviewed and added comment to say this walk_system_ram_res_rev() is not good, and suggested me to change the singly linked list of child resource to standard list_head which is doubly linked list, then walk_system_ram_res_rev() can be implemented very easily to do reversed searching. So I posted v2:
http://lkml.kernel.org/r/[email protected]
Now the latest post is v6:
http://lkml.kernel.org/r/[email protected]
Since changing resource child tree to take doubly linked list list_head impacts all ARCH and many components, I am still fixing issues test robot reported since I can only test on x86. Now I plan to ask intel 0day team to tell how I can run scripts locally for all ARCH to find out all codes impacted and fix them all at one time.
So I think we can drop the old walk_system_ram_res_rev() in v1, I am still working on this issue. Sorry for the confusion I made because of my mistakes.
Thanks
Baoquan
Quoted 10 lines · Andrew Morton
Quoted 3 lines · On Wed, 4 Jul 2018 10:31:53 -0700 Kees Cook <[email protected]> wrote:
As already done treewide, switch from open-coded multiplication to using 2-factor allocation helpers.
This is against resource-add-walk_system_ram_res_rev.patch
(http://lkml.kernel.org/r/[email protected]).That patch is awaiting (for several months!) a v2. Will this be happening?