Merge tag 'memblock-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 Nov 2023 17:40:13 +0000 (09:40 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 8 Nov 2023 17:40:13 +0000 (09:40 -0800)
Pull memblock update from Mike Rapoport:
 "Report failures when memblock_can_resize is not set.

  Numerous memblock reservations at early boot may exhaust static
  memblock.reserved array and it is unnoticed because most of the
  callers don't check memblock_reserve() return value.

  In this case the system will crash later, but the reason is hard to
  identify.

  Replace return of an error with panic() when memblock.reserved is
  exhausted before it can be resized"

* tag 'memblock-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
  memblock: report failures when memblock_can_resize is not set

mm/memblock.c

index fd492e5bbdbcde42497a513fded38048bce91bde..5a88d6d24d793807803139254b5804827251adf1 100644 (file)
@@ -424,7 +424,7 @@ static int __init_memblock memblock_double_array(struct memblock_type *type,
         * of memory that aren't suitable for allocation
         */
        if (!memblock_can_resize)
-               return -1;
+               panic("memblock: cannot resize %s array\n", type->name);
 
        /* Calculate new doubled size */
        old_size = type->max * sizeof(struct memblock_region);