diff options
Diffstat (limited to 'drivers/dma/iovlock.c')
| -rw-r--r-- | drivers/dma/iovlock.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/dma/iovlock.c b/drivers/dma/iovlock.c index 9f6fe46a9b87..c0a272c73682 100644 --- a/drivers/dma/iovlock.c +++ b/drivers/dma/iovlock.c | |||
| @@ -183,6 +183,11 @@ dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov, | |||
| 183 | iov_byte_offset, | 183 | iov_byte_offset, |
| 184 | kdata, | 184 | kdata, |
| 185 | copy); | 185 | copy); |
| 186 | /* poll for a descriptor slot */ | ||
| 187 | if (unlikely(dma_cookie < 0)) { | ||
| 188 | dma_async_issue_pending(chan); | ||
| 189 | continue; | ||
| 190 | } | ||
| 186 | 191 | ||
| 187 | len -= copy; | 192 | len -= copy; |
| 188 | iov[iovec_idx].iov_len -= copy; | 193 | 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, | |||
| 248 | page, | 253 | page, |
| 249 | offset, | 254 | offset, |
| 250 | copy); | 255 | copy); |
| 256 | /* poll for a descriptor slot */ | ||
| 257 | if (unlikely(dma_cookie < 0)) { | ||
| 258 | dma_async_issue_pending(chan); | ||
| 259 | continue; | ||
| 260 | } | ||
| 251 | 261 | ||
| 252 | len -= copy; | 262 | len -= copy; |
| 253 | iov[iovec_idx].iov_len -= copy; | 263 | iov[iovec_idx].iov_len -= copy; |
