swiotlb-xen: Enforce return of DMA_ERROR_CODE in mapping function
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 2 Nov 2016 11:12:47 +0000 (07:12 -0400)
committerKonrad Rzeszutek Wilk <konrad@kernel.org>
Mon, 7 Nov 2016 20:06:32 +0000 (15:06 -0500)
commit7641842164c34b672ef3e70e881e8a72735305c1
tree3cc9ce655ba49870ff070225b231f1d2074566b3
parentebcf6f979d55f35dfe36956364f0dce8c738220b
swiotlb-xen: Enforce return of DMA_ERROR_CODE in mapping function

The mapping function should always return DMA_ERROR_CODE when a mapping has
failed as this is what the DMA API expects when a DMA error has occurred.
The current function for mapping a page in Xen was returning either
DMA_ERROR_CODE or 0 depending on where it failed.

On x86 DMA_ERROR_CODE is 0, but on other architectures such as ARM it is
~0. We need to make sure we return the same error value if either the
mapping failed or the device is not capable of accessing the mapping.

If we are returning DMA_ERROR_CODE as our error value we can drop the
function for checking the error code as the default is to compare the
return value against DMA_ERROR_CODE if no function is defined.

Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad@kernel.org>
arch/arm/xen/mm.c
arch/x86/xen/pci-swiotlb-xen.c
drivers/xen/swiotlb-xen.c
include/xen/swiotlb-xen.h