alistair23-linux/drivers/dma/ioat
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
..
dca.c
dma.c ioat: fix size of 'completion' for Xen 2012-03-23 13:36:42 -07:00
dma.h ioat: fix size of 'completion' for Xen 2012-03-23 13:36:42 -07:00
dma_v2.c ioat: fix size of 'completion' for Xen 2012-03-23 13:36:42 -07:00
dma_v2.h
dma_v3.c ioat: fix size of 'completion' for Xen 2012-03-23 13:36:42 -07:00
hw.h
Makefile drivers/dma/ioat: Use the ccflag-y instead of EXTRA_CFLAGS 2010-12-04 15:03:06 -08:00
pci.c ioat: Adding PCI IDs for IOAT devices on SandyBridge platforms 2011-07-22 14:17:31 -07:00
registers.h