diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 15:01:04 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:30:24 -0400 |
commit | 4fb9b9e8d55880523db550043dfb204696dd0422 (patch) | |
tree | 733a672aeb819bb8133b16329a6b5088cf9ee693 /drivers/dma/ioat/dma.h | |
parent | 6df9183a153291a2585a8dfe67597fc18c201147 (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.h | 10 |
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 | }; |