linux/drivers/dma
Dan Williams 2750293539 ioat: fix size of 'completion' for Xen
Starting with v3.2 Jonathan reports that Xen crashes loading the ioatdma
driver.  A debug run shows:

  ioatdma 0000:00:16.4: desc[0]: (0x300cc7000->0x300cc7040) cookie: 0 flags: 0x2 ctl: 0x29 (op: 0 int_en: 1 compl: 1)
  ...
  ioatdma 0000:00:16.4: ioat_get_current_completion: phys_complete: 0xcc7000

...which shows that in this environment GFP_KERNEL memory may be backed
by a 64-bit dma address.  This breaks the driver's assumption that an
unsigned long should be able to contain the physical address for
descriptor memory.  Switch to dma_addr_t which beyond being the right
size, is the true type for the data i.e. an io-virtual address
inidicating the engine's last processed descriptor.

[stable: 3.2+]
Cc: <stable@vger.kernel.org>
Reported-by: Jonathan Nieder <jrnieder@gmail.com>
Reported-by: William Dauchy <wdauchy@gmail.com>
Tested-by: William Dauchy <wdauchy@gmail.com>
Tested-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2012-03-23 13:36:42 -07:00
..
ioat ioat: fix size of 'completion' for Xen 2012-03-23 13:36:42 -07:00
ipu i.MX IPU DMA: Fix wrong burstsize settings 2011-12-08 12:59:03 +05:30
ppc4xx Merge branch 'old_next' into next 2011-04-06 11:51:12 +05:30
amba-pl08x.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
at_hdmac_regs.h at_hdmac: bugfix for enabling channel irq 2012-01-31 09:09:04 +05:30
at_hdmac.c at_hdmac: bugfix for enabling channel irq 2012-01-31 09:09:04 +05:30
coh901318_lli.c dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
coh901318_lli.h dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
coh901318.c dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
dmaengine.c DMAEngine: Define interleaved transfer request api 2011-11-18 12:16:24 +05:30
dmatest.c dmaengine: fix missing 'cnt' in ?: in dmatest 2012-01-23 11:43:18 -08:00
dw_dmac_regs.h dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume 2011-11-28 08:48:02 +05:30
dw_dmac.c dmaengine/dw_dmac: Reconfigure interrupt and chan_cfg register on resume 2011-11-28 08:48:02 +05:30
ep93xx_dma.c dma/ep93xx_dma: prevent ep93xx_dma_tasklet() to reference an empty list 2011-12-05 08:16:26 +05:30
fsldma.c dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
fsldma.h fsldma: fix controller lockups 2011-03-11 17:52:36 -08:00
imx-dma.c Merge branch 'dma_slave_direction' into next_test_dirn 2011-11-17 14:54:57 +05:30
imx-sdma.c i.MX SDMA: Fix burstsize settings 2012-02-02 14:00:43 +05:30
intel_mid_dma_regs.h dmaengine: intel_mid_dma: remove legacy pm interface 2012-01-02 16:34:42 +05:30
intel_mid_dma.c dmaengine: intel_mid_dma: remove legacy pm interface 2012-01-02 16:34:42 +05:30
iop-adma.c dmaengine: convert drivers/dma/* to use module_platform_driver() 2011-12-05 08:25:54 +05:30
iovlock.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
Kconfig dma: MX3_IPU fix depends 2011-12-19 12:26:07 +01:00
Makefile dmaengine: add CSR SiRFprimaII DMAC driver 2011-11-18 12:25:22 +05:30
mpc512x_dma.c dmaengine: convert drivers/dma/* to use module_platform_driver() 2011-12-05 08:25:54 +05:30
mv_xor.c ARM: Orion: Get address map from plat-orion instead of via platform_data 2011-12-13 18:46:55 -05:00
mv_xor.h mv_xor: implement a private tx_list 2009-09-08 17:53:03 -07:00
mxs-dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
pch_dma.c Merge branch 'dma_slave_direction' into next_test_dirn 2011-11-17 14:54:57 +05:30
pl330.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
shdma.c dma: sh_dma: not all SH DMAC implementations support MEMCPY 2012-02-01 22:23:53 +05:30
shdma.h dma: shdma: transfer based runtime PM 2011-09-28 10:07:40 +05:30
sirf-dma.c dmaengine: convert drivers/dma/* to use module_platform_driver() 2011-12-05 08:25:54 +05:30
ste_dma40_ll.c dma40: cyclic xfer support 2011-01-30 22:27:21 -08:00
ste_dma40_ll.h dmaengine/ste_dma40: support pm in dma40 2011-11-22 09:46:06 +05:30
ste_dma40.c dmaengine/ste_dma40: clear LNK on channel startup 2012-01-02 16:42:44 +05:30
timb_dma.c dmaengine: convert drivers/dma/* to use module_platform_driver() 2011-12-05 08:25:54 +05:30
TODO dmaengine: remove ste_dma40 from issue_pending TODO 2011-07-14 04:02:08 +05:30
txx9dmac.c dmaengine: move drivers to dma_transfer_direction 2011-10-27 20:53:43 +05:30
txx9dmac.h txx9dmac: implement a private tx_list 2009-09-08 17:53:03 -07:00