In case we request a number of SMP blocks which is lower than
the already reserved blocks, we should not try to allocate a
negative number, but 0 blocks instead.
Signed-off-by: Stephane Viau <sviau@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
 
        spin_lock_irqsave(&smp->state_lock, flags);
 
-       nblks -= reserved;
-       if (reserved)
+       if (reserved) {
+               nblks = max(0, nblks - reserved);
                DBG("%d MMBs allocated (%d reserved)", nblks, reserved);
+       }
 
        avail = cnt - bitmap_weight(smp->state, cnt);
        if (nblks > avail) {