Thanks, here is an updated version of the patch:
bootmem: Allow zero length reserve and free.
It's either this or all the call sites explicitly check
when such a case is possible and sometimes expected.
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/mm/bootmem.c b/mm/bootmem.c
index 8d9f60e..5e3fab8 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -117,7 +117,8 @@ static int __init can_reserve_bootmem_core(bootmem_data_t *bdata,
unsigned long sidx, eidx;
unsigned long i;
- BUG_ON(!size);
+ if (!size)
+ return 0;
/* out of range, don't hold other */
if (addr + size < bdata->node_boot_start ||
@@ -153,7 +154,8 @@ static void __init reserve_bootmem_core(bootmem_data_t *bdata,
unsigned long sidx, eidx;
unsigned long i;
- BUG_ON(!size);
+ if (!size)
+ return;
/* out of range */
if (addr + size < bdata->node_boot_start ||
@@ -187,7 +189,8 @@ static void __init free_bootmem_core(bootmem_data_t *bdata, unsigned long addr,
unsigned long sidx, eidx;
unsigned long i;
- BUG_ON(!size);
+ if (!size)
+ return;
/* out range */
if (addr + size < bdata->node_boot_start ||
--