projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6b4b87f
)
dmaengine: uniphier-xdmac: Use readl_poll_timeout_atomic() in atomic state
author
Kunihiko Hayashi
<hayashi.kunihiko@socionext.com>
Tue, 27 Jul 2021 05:47:32 +0000
(14:47 +0900)
committer
Vinod Koul
<vkoul@kernel.org>
Tue, 27 Jul 2021 12:45:42 +0000
(18:15 +0530)
The function uniphier_xdmac_chan_stop() is only called in atomic state.
Should use readl_poll_timeout_atomic() there instead of
readl_poll_timeout().
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes:
667b9251440b
("dmaengine: uniphier-xdmac: Add UniPhier external DMA controller driver")
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link:
https://lore.kernel.org/r/1627364852-28432-1-git-send-email-hayashi.kunihiko@socionext.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/uniphier-xdmac.c
patch
|
blob
|
history
diff --git
a/drivers/dma/uniphier-xdmac.c
b/drivers/dma/uniphier-xdmac.c
index
16b1965
..
d6b8a20
100644
(file)
--- a/
drivers/dma/uniphier-xdmac.c
+++ b/
drivers/dma/uniphier-xdmac.c
@@
-209,8
+209,8
@@
static int uniphier_xdmac_chan_stop(struct uniphier_xdmac_chan *xc)
writel(0, xc->reg_ch_base + XDMAC_TSS);
/* wait until transfer is stopped */
- return readl_poll_timeout(xc->reg_ch_base + XDMAC_STAT, val,
- !(val & XDMAC_STAT_TENF), 100, 1000);
+ return readl_poll_timeout
_atomic
(xc->reg_ch_base + XDMAC_STAT, val,
+
!(val & XDMAC_STAT_TENF), 100, 1000);
}
/* xc->vc.lock must be held by caller */