mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
1af8ea862c
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> |
||
---|---|---|
.. | ||
amcc | ||
caam | ||
nx | ||
ux500 | ||
bfin_crc.c | ||
geode-aes.c | ||
geode-aes.h | ||
hifn_795x.c | ||
ixp4xx_crypto.c | ||
Kconfig | ||
Makefile | ||
mv_cesa.c | ||
mv_cesa.h | ||
n2_asm.S | ||
n2_core.c | ||
n2_core.h | ||
omap-aes.c | ||
omap-sham.c | ||
padlock-aes.c | ||
padlock-sha.c | ||
picoxcell_crypto_regs.h | ||
picoxcell_crypto.c | ||
s5p-sss.c | ||
talitos.c | ||
talitos.h | ||
tegra-aes.c | ||
tegra-aes.h |