From 06d5cd279aa9aa08eefbfcd4faad9f6bb386b7c4 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 8 Sep 2009 12:02:15 -0700 Subject: [PATCH] --- yaml --- r: 165776 b: refs/heads/master c: 4b652f0db3be891c7b76b109c3b55003b920fc96 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/dma/iovlock.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7e3aa6f3cdfa..3a678503995f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a309218acee8606f7e235da20cc826eb06d9b0f6 +refs/heads/master: 4b652f0db3be891c7b76b109c3b55003b920fc96 diff --git a/trunk/drivers/dma/iovlock.c b/trunk/drivers/dma/iovlock.c index 9f6fe46a9b87..c0a272c73682 100644 --- a/trunk/drivers/dma/iovlock.c +++ b/trunk/drivers/dma/iovlock.c @@ -183,6 +183,11 @@ dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov, iov_byte_offset, kdata, copy); + /* poll for a descriptor slot */ + if (unlikely(dma_cookie < 0)) { + dma_async_issue_pending(chan); + continue; + } len -= copy; iov[iovec_idx].iov_len -= copy; @@ -248,6 +253,11 @@ dma_cookie_t dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov, page, offset, copy); + /* poll for a descriptor slot */ + if (unlikely(dma_cookie < 0)) { + dma_async_issue_pending(chan); + continue; + } len -= copy; iov[iovec_idx].iov_len -= copy;