]> git.baikalelectronics.ru Git - kernel.git/commit
riscv: Fix a number of free'd resources in init_resources()
authorPetr Pavlu <petr.pavlu@suse.com>
Sat, 7 Aug 2021 17:54:50 +0000 (19:54 +0200)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Fri, 20 Aug 2021 17:15:51 +0000 (10:15 -0700)
commita7c27b4ef5546ee6f9a1e1015bfc14652ee9945d
tree38319ee9fca26c731a07ccbdc67ab2f527a0cd46
parent963d9ad3cac61953d78a0ca1c37f5cb8b64e7e4d
riscv: Fix a number of free'd resources in init_resources()

Function init_resources() allocates a boot memory block to hold an array of
resources which it adds to iomem_resource. The array is filled in from its
end and the function then attempts to free any unused memory at the
beginning. The problem is that size of the unused memory is incorrectly
calculated and this can result in releasing memory which is in use by
active resources. Their data then gets corrupted later when the memory is
reused by a different part of the system.

Fix the size of the released memory to correctly match the number of unused
resource entries.

Fixes: c75f59eee013 ("RISC-V: Improve init_resources()")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
Acked-by: Nick Kossifidis <mick@ics.forth.gr>
Tested-by: Sunil V L <sunilvl@ventanamicro.com>
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/kernel/setup.c