1
0
Fork 0
alistair23-linux/drivers/crypto
Bharat Bhushan 1af8ea862c crypto: caam - Using alloc_coherent for caam job rings
The caam job rings (input/output job ring) are allocated using
dma_map_single(). These job rings can be visualized as the ring
buffers in which the jobs are en-queued/de-queued. The s/w enqueues
the jobs in input job ring which h/w dequeues and after processing
it copies the jobs in output job ring. Software then de-queues the
job from output ring. Using dma_map/unmap_single() is not preferred
way to allocate memory for this type of requirements because this
adds un-necessary complexity.

Example, if bounce buffer (SWIOTLB) will get used then to make any
change visible in this memory to other processing unit requires
dmap_unmap_single() or dma_sync_single_for_cpu/device(). The
dma_unmap_single() can not be used as this will free the bounce
buffer, this will require changing the job rings on running system
and I seriously doubt that it will be not possible or very complex
to implement. Also using dma_sync_single_for_cpu/device() will also
add unnecessary complexity.

The simple and preferred way is using dma_alloc_coherent() for these
type of memory requirements.

This resolves the Linux boot crash issue when "swiotlb=force" is set
in bootargs on systems which have memory more than 4G.

Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-07-11 11:06:10 +08:00
..
amcc crypto: crypto4xx - move up err_request_irq label 2012-04-27 11:28:28 +10:00
caam crypto: caam - Using alloc_coherent for caam job rings 2012-07-11 11:06:10 +08:00
nx powerpc/crypto: Build files for the nx device driver 2012-05-16 15:05:45 +10:00
ux500 crypto: ux500 - Cleanup hardware identification 2012-05-15 17:25:33 +10:00
Kconfig crypto: nx - fix typo in nx driver config option 2012-06-27 14:42:00 +08:00
Makefile crypto: nx - move nx build to driver/crypto Makefile 2012-06-27 14:42:00 +08:00
bfin_crc.c crypto: bfin_crc - CRC hardware driver for BF60x family processors. 2012-06-12 16:37:19 +08:00
geode-aes.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
geode-aes.h
hifn_795x.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2012-03-21 13:20:43 -07:00
ixp4xx_crypto.c crypto: ixp4xx - include fix 2012-04-05 20:34:21 +08:00
mv_cesa.c crypto: mv_cesa - fix for hash finalisation with data 2012-06-12 16:46:05 +08:00
mv_cesa.h
n2_asm.S
n2_core.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
n2_core.h
omap-aes.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
omap-sham.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
padlock-aes.c crypto: Add support for x86 cpuid auto loading for x86 crypto drivers 2012-01-26 16:48:10 -08:00
padlock-sha.c crypto: Add support for x86 cpuid auto loading for x86 crypto drivers 2012-01-26 16:48:10 -08:00
picoxcell_crypto.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
picoxcell_crypto_regs.h
s5p-sss.c crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flag 2012-01-13 16:38:40 +11:00
talitos.c crypto: talitos - properly lock access to global talitos registers 2012-04-09 15:13:40 +08:00
talitos.h
tegra-aes.c
tegra-aes.h