aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat/dma.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-09-08 15:01:04 -0400
committerDan Williams <dan.j.williams@intel.com>2009-09-08 20:30:24 -0400
commit4fb9b9e8d55880523db550043dfb204696dd0422 (patch)
tree733a672aeb819bb8133b16329a6b5088cf9ee693 /drivers/dma/ioat/dma.h
parent6df9183a153291a2585a8dfe67597fc18c201147 (diff)
ioat: cleanup completion status reads
The cleanup path makes an effort to only perform an atomic read of the 64-bit completion address. However in the 32-bit case it does not matter if we read the upper-32 and lower-32 non-atomically because the upper-32 will always be zero. Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r--drivers/dma/ioat/dma.h10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h
index 9f9edc2cd07..5fd6e2de84d 100644
--- a/drivers/dma/ioat/dma.h
+++ b/drivers/dma/ioat/dma.h
@@ -96,14 +96,8 @@ struct ioat_chan_common {
96 struct ioatdma_device *device; 96 struct ioatdma_device *device;
97 struct dma_chan common; 97 struct dma_chan common;
98 98
99 dma_addr_t completion_addr; 99 dma_addr_t completion_dma;
100 union { 100 u64 *completion;
101 u64 full; /* HW completion writeback */
102 struct {
103 u32 low;
104 u32 high;
105 };
106 } *completion_virt;
107 unsigned long last_compl_desc_addr_hw; 101 unsigned long last_compl_desc_addr_hw;
108 struct tasklet_struct cleanup_task; 102 struct tasklet_struct cleanup_task;
109}; 103};