1. 11 Jul, 2012 1 commit
    • Bharat Bhushan's avatar
      crypto: caam - Using alloc_coherent for caam job rings · 1af8ea86
      Bharat Bhushan authored
      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: default avatarBharat Bhushan <bharat.bhushan@freescale.com>
      Acked-by: default avatarKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      1af8ea86
  2. 27 Jun, 2012 36 commits
  3. 22 Jun, 2012 1 commit
    • Herbert Xu's avatar
      crypto: algapi - Move larval completion into algboss · 39871037
      Herbert Xu authored
      It has been observed that sometimes the crypto allocation code
      will get stuck for 60 seconds or multiples thereof.  This is
      usually caused by an algorithm failing to pass the self-test.
      
      If an algorithm fails to be constructed, we will immediately notify
      all larval waiters.  However, if it succeeds in construction, but
      then fails the self-test, we won't notify anyone at all.
      
      This patch fixes this by merging the notification in the case
      where the algorithm fails to be constructed with that of the
      the case where it pases the self-test.  This way regardless of
      what happens, we'll give the larval waiters an answer.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      39871037
  4. 14 Jun, 2012 2 commits