diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c index 434013d4128899503362e171c0bd26881684aa0f..8acbc3ab0b926d42a58dda6075555edae16e09d1 100644 --- a/drivers/dma/iop-adma.c +++ b/drivers/dma/iop-adma.c @@ -373,8 +373,8 @@ iop_adma_alloc_slots(struct iop_adma_chan *iop_chan, int num_slots, if (!retry++) goto retry; - /* try to free some slots if the allocation fails */ - tasklet_schedule(&iop_chan->irq_tasklet); + /* perform direct reclaim if the allocation fails */ + __iop_adma_slot_cleanup(iop_chan); return NULL; }