diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slob.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/slob.c b/mm/slob.c index 773a7aa80ab5..c56c5e57c192 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -398,6 +398,10 @@ static void slob_free(void *block, int size) sp->units += units; if (b < sp->free) { + if (b + units == sp->free) { + units += slob_units(sp->free); + sp->free = slob_next(sp->free); + } set_slob(b, units, sp->free); sp->free = b; } else { |