Skip to content
  1. Nov 28, 2016
  2. Nov 21, 2016
  3. Nov 17, 2016
  4. Nov 13, 2016
    • Horia Geantă's avatar
      crypto: caam - merge identical ahash_final/finup shared desc · 9a1a1c08
      Horia Geantă authored
      
      
      Shared descriptors used by ahash_final() and ahash_finup()
      are identical, thus get rid of one of them (sh_desc_finup).
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9a1a1c08
    • Horia Geantă's avatar
      crypto: caam - constify pointer to descriptor buffer · 24a4f14f
      Horia Geantă authored
      
      
      The pointer to the descriptor buffer is not touched,
      it always points to start of the descriptor buffer.
      Thus, make it const.
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      24a4f14f
    • Horia Geantă's avatar
      crypto: caam - move sec4_sg_entry to sg_sw_sec4.h · e25ff92e
      Horia Geantă authored
      
      
      sec4_sg_entry structure is used only by helper functions in sg_sw_sec4.h.
      Since SEC HW S/G entries are to be manipulated only indirectly, via these
      functions, move sec4_sg_entry to the corresponding header.
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      e25ff92e
    • Horia Geantă's avatar
      Revert "crypto: caam - get rid of tasklet" · 2b163b5b
      Horia Geantă authored
      This reverts commit 66d2e202
      
      .
      
      Quoting from Russell's findings:
      https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg21136.html
      
      [quote]
      Okay, I've re-tested, using a different way of measuring, because using
      openssl speed is impractical for off-loaded engines.  I've decided to
      use this way to measure the performance:
      
      dd if=/dev/zero bs=1048576 count=128 | /usr/bin/time openssl dgst -md5
      
      For the threaded IRQs case gives:
      
      0.05user 2.74system 0:05.30elapsed 52%CPU (0avgtext+0avgdata 2400maxresident)k
      0.06user 2.52system 0:05.18elapsed 49%CPU (0avgtext+0avgdata 2404maxresident)k
      0.12user 2.60system 0:05.61elapsed 48%CPU (0avgtext+0avgdata 2460maxresident)k
      	=> 5.36s => 25.0MB/s
      
      and the tasklet case:
      
      0.08user 2.53system 0:04.83elapsed 54%CPU (0avgtext+0avgdata 2468maxresident)k
      0.09user 2.47system 0:05.16elapsed 49%CPU (0avgtext+0avgdata 2368maxresident)k
      0.10user 2.51system 0:04.87elapsed 53%CPU (0avgtext+0avgdata 2460maxresident)k
      	=> 4.95 => 27.1MB/s
      
      which corresponds to an 8% slowdown for the threaded IRQ case.  So,
      tasklets are indeed faster than threaded IRQs.
      
      [...]
      
      I think I've proven from the above that this patch needs to be reverted
      due to the performance regression, and that there _is_ most definitely
      a deterimental effect of switching from tasklets to threaded IRQs.
      [/quote]
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      2b163b5b
    • Horia Geantă's avatar
      crypto: caam - fix DMA API mapping leak in ablkcipher code · c73e36e8
      Horia Geantă authored
      
      
      alkcipher_edesc_alloc() and ablkcipher_giv_edesc_alloc() don't
      free / unmap resources on error path:
      - dmap_map_sg() could fail, thus make sure the return value is checked
      - unmap DMA mappings in case of error
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c73e36e8
    • Horia Geantă's avatar
      crypto: caam - remove unreachable code in report_ccb_status() · 9305dff7
      Horia Geantă authored
      
      
      ERRID is a 4-bit field.
      Since err_id values are in [0..15] and err_id_list array size is 16,
      the condition "err_id < ARRAY_SIZE(err_id_list)" is always true.
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9305dff7
    • Horia Geantă's avatar
      crypto: caam - trivial code clean-up · 4ca7c7d8
      Horia Geantă authored
      
      
      -replace offsetof with container_of
      -remove unused "assoc_nents", "iv_dma" from aead_edesc
      and fix comments
      -remove unused CAAM_MAX_IV_LENGTH #define
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      4ca7c7d8
    • Horia Geantă's avatar
      crypto: caam - remove unused command from aead givencrypt · 1b008eed
      Horia Geantă authored
      REG3 no longer needs to be updated, since it's not used after that.
      This shared descriptor command is a leftover of the conversion to
      AEAD interface.
      
      Fixes: 479bcc7c
      
       "crypto: caam - Convert authenc to new AEAD interface"
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      1b008eed
    • Horia Geantă's avatar
      crypto: caam - remove unused may_sleep in dbg_dump_sg() · 00fef2b2
      Horia Geantă authored
      Fixes: 5ecf8ef9
      
       "crypto: caam - fix sg dump"
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      00fef2b2
    • Horia Geantă's avatar
      crypto: caam - fix smatch warnings · c530e341
      Horia Geantă authored
      
      
      Fix the following smatch warnings:
      
      drivers/crypto/caam/caamalg.c:2350 aead_edesc_alloc() warn: we tested 'src_nents' before and it was 'true'
      drivers/crypto/caam/caamrng.c:351 caam_rng_init() error: no modifiers for allocation.
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c530e341
    • Horia Geantă's avatar
      crypto: caam - fix sparse warnings · 8439e94f
      Horia Geantă authored
      
      
      Fix the following sparse warning (note that endianness issues
      are not not addressed in current patch):
      
      drivers/crypto/caam/ctrl.c:388:24: warning: incorrect type in argument 1 (different address spaces)
      drivers/crypto/caam/ctrl.c:388:24:    expected void [noderef] <asn:2>*reg
      drivers/crypto/caam/ctrl.c:388:24:    got unsigned int *<noident>
      drivers/crypto/caam/ctrl.c:390:24: warning: incorrect type in argument 1 (different address spaces)
      drivers/crypto/caam/ctrl.c:390:24:    expected void [noderef] <asn:2>*reg
      drivers/crypto/caam/ctrl.c:390:24:    got unsigned int *<noident>
      drivers/crypto/caam/ctrl.c:548:24: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:548:24:    expected struct caam_ctrl [noderef] <asn:2>*ctrl
      drivers/crypto/caam/ctrl.c:548:24:    got struct caam_ctrl *<noident>
      drivers/crypto/caam/ctrl.c:550:30: warning: cast removes address space of expression
      drivers/crypto/caam/ctrl.c:549:26: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:549:26:    expected struct caam_assurance [noderef] <asn:2>*assure
      drivers/crypto/caam/ctrl.c:549:26:    got struct caam_assurance *<noident>
      drivers/crypto/caam/ctrl.c:554:28: warning: cast removes address space of expression
      drivers/crypto/caam/ctrl.c:553:24: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:553:24:    expected struct caam_deco [noderef] <asn:2>*deco
      drivers/crypto/caam/ctrl.c:553:24:    got struct caam_deco *<noident>
      drivers/crypto/caam/ctrl.c:634:48: warning: cast removes address space of expression
      drivers/crypto/caam/ctrl.c:633:44: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:633:44:    expected struct caam_job_ring [noderef] <asn:2>*<noident>
      drivers/crypto/caam/ctrl.c:633:44:    got struct caam_job_ring *<noident>
      drivers/crypto/caam/ctrl.c:648:34: warning: cast removes address space of expression
      drivers/crypto/caam/ctrl.c:647:30: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:647:30:    expected struct caam_queue_if [noderef] <asn:2>*qi
      drivers/crypto/caam/ctrl.c:647:30:    got struct caam_queue_if *<noident>
      drivers/crypto/caam/ctrl.c:806:37: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:806:37:    expected void *data
      drivers/crypto/caam/ctrl.c:806:37:    got unsigned int [noderef] <asn:2>*
      drivers/crypto/caam/ctrl.c:814:38: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:814:38:    expected void *data
      drivers/crypto/caam/ctrl.c:814:38:    got unsigned int [noderef] <asn:2>*
      drivers/crypto/caam/ctrl.c:822:38: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/ctrl.c:822:38:    expected void *data
      drivers/crypto/caam/ctrl.c:822:38:    got unsigned int [noderef] <asn:2>*
      drivers/crypto/caam/jr.c:492:23: warning: incorrect type in assignment (different address spaces)
      drivers/crypto/caam/jr.c:492:23:    expected struct caam_job_ring [noderef] <asn:2>*rregs
      drivers/crypto/caam/jr.c:492:23:    got struct caam_job_ring *<noident>
      drivers/crypto/caam/caampkc.c:398:35: warning: Using plain integer as NULL pointer
      drivers/crypto/caam/caampkc.c:444:35: warning: Using plain integer as NULL pointer
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      8439e94f
    • Horia Geantă's avatar
      crypto: caam - desc.h fixes · 2090456a
      Horia Geantă authored
      
      
      1. fix HDR_START_IDX_MASK, HDR_SD_SHARE_MASK, HDR_JD_SHARE_MASK
      Define HDR_START_IDX_MASK consistently with the other masks:
      mask = bitmask << offset
      
      2. OP_ALG_TYPE_CLASS1 and OP_ALG_TYPE_CLASS2 must be shifted.
      
      3. fix FIFO_STORE output data type value for AFHA S-Box
      
      4. fix OPERATION pkha modular arithmetic source mask
      
      5. rename LDST_SRCDST_WORD_CLASS1_ICV_SZ to
      LDST_SRCDST_WORD_CLASS1_IV_SZ (it refers to IV, not ICV).
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      2090456a
    • Horia Geantă's avatar
      crypto: caam - completely remove error propagation handling · 39957c8e
      Horia Geantă authored
      Commit 4464a7d4
      
      
      ("crypto: caam - remove error propagation handling")
      removed error propagation handling only from caamalg.
      
      Do this in all other places: caamhash, caamrng.
      Update descriptors' lengths appropriately.
      
      Signed-off-by: default avatarHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      39957c8e