Commit 2559d19f authored by Stephane Viau's avatar Stephane Viau Committed by Rob Clark

drm/msm/mdp5: Fix negative SMP block allocation

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: default avatarStephane Viau <sviau@codeaurora.org>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent cddfaebd
...@@ -119,9 +119,10 @@ static int smp_request_block(struct mdp5_smp *smp, ...@@ -119,9 +119,10 @@ static int smp_request_block(struct mdp5_smp *smp,
spin_lock_irqsave(&smp->state_lock, flags); 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); DBG("%d MMBs allocated (%d reserved)", nblks, reserved);
}
avail = cnt - bitmap_weight(smp->state, cnt); avail = cnt - bitmap_weight(smp->state, cnt);
if (nblks > avail) { if (nblks > avail) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment