diff options
author | Russell King - ARM Linux <linux@arm.linux.org.uk> | 2011-01-03 22:31:04 +0000 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-01-04 19:16:10 -0800 |
commit | 91aa5fadb831e7b6ea473a526a6b49c6dc4819ce (patch) | |
tree | 4f96e2649b8725b6f58bace588e90c9f38c3dc80 /include/linux/amba | |
parent | 4440aacf3a171a0ab498feda58d100a320c5d9ff (diff) | |
download | op-kernel-dev-91aa5fadb831e7b6ea473a526a6b49c6dc4819ce.zip op-kernel-dev-91aa5fadb831e7b6ea473a526a6b49c6dc4819ce.tar.gz |
ARM: PL08x: fix atomic_t usage and tx_submit() return value range
The last_issued variable uses an atomic type, which is only
incremented inside a protected region, and then read. Everywhere else
only reads the value, so it isn't using atomic_t correctly, and it
doesn't even need to. Moreover, the DMA engine code provides us with
a variable for this already - chan.cookie. Use chan.cookie instead.
Also, avoid negative dma_cookie_t values - negative returns from
tx_submit() mean failure, yet in reality we always succeed. Restart
from cookie 1, just like other DMA engine drivers do.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include/linux/amba')
-rw-r--r-- | include/linux/amba/pl08x.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index 521a0f8..4ae62b4 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h @@ -174,7 +174,6 @@ struct pl08x_dma_chan { struct pl08x_channel_data *cd; dma_addr_t runtime_addr; enum dma_data_direction runtime_direction; - atomic_t last_issued; dma_cookie_t lc; struct list_head desc_list; struct pl08x_txd *at; |