25 Aug, 2014

2 commits

  • buf_0 and buf_1 in caam_hash_state are not next to each other.
    Accessing buf_1 is incorrect from &buf_0 with an offset of only
    size_of(buf_0). The same issue is also with buflen_0 and buflen_1

    Cc: # 3.13+
    Signed-off-by: Cristian Stoica
    Signed-off-by: Herbert Xu

    Cristian Stoica
     
  • Replace equivalent (and partially incorrect) scatter-gather functions
    with ones from crypto-API.

    The replacement is motivated by page-faults in sg_copy_part triggered
    by successive calls to crypto_hash_update. The following fault appears
    after calling crypto_ahash_update twice, first with 13 and then
    with 285 bytes:

    Unable to handle kernel paging request for data at address 0x00000008
    Faulting instruction address: 0xf9bf9a8c
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=8 CoreNet Generic
    Modules linked in: tcrypt(+) caamhash caam_jr caam tls
    CPU: 6 PID: 1497 Comm: cryptomgr_test Not tainted
    3.12.19-rt30-QorIQ-SDK-V1.6+g9fda9f2 #75
    task: e9308530 ti: e700e000 task.ti: e700e000
    NIP: f9bf9a8c LR: f9bfcf28 CTR: c0019ea0
    REGS: e700fb80 TRAP: 0300 Not tainted
    (3.12.19-rt30-QorIQ-SDK-V1.6+g9fda9f2)
    MSR: 00029002 CR: 44f92024 XER: 20000000
    DEAR: 00000008, ESR: 00000000

    GPR00: f9bfcf28 e700fc30 e9308530 e70b1e55 00000000 ffffffdd e70b1e54 0bebf888
    GPR08: 902c7ef5 c0e771e2 00000002 00000888 c0019ea0 00000000 00000000 c07a4154
    GPR16: c08d0000 e91a8f9c 00000001 e98fb400 00000100 e9c83028 e70b1e08 e70b1d48
    GPR24: e992ce10 e70b1dc8 f9bfe4f4 e70b1e55 ffffffdd e70b1ce0 00000000 00000000
    NIP [f9bf9a8c] sg_copy+0x1c/0x100 [caamhash]
    LR [f9bfcf28] ahash_update_no_ctx+0x628/0x660 [caamhash]
    Call Trace:
    [e700fc30] [f9bf9c50] sg_copy_part+0xe0/0x160 [caamhash] (unreliable)
    [e700fc50] [f9bfcf28] ahash_update_no_ctx+0x628/0x660 [caamhash]
    [e700fcb0] [f954e19c] crypto_tls_genicv+0x13c/0x300 [tls]
    [e700fd10] [f954e65c] crypto_tls_encrypt+0x5c/0x260 [tls]
    [e700fd40] [c02250ec] __test_aead.constprop.9+0x2bc/0xb70
    [e700fe40] [c02259f0] alg_test_aead+0x50/0xc0
    [e700fe60] [c02241e4] alg_test+0x114/0x2e0
    [e700fee0] [c022276c] cryptomgr_test+0x4c/0x60
    [e700fef0] [c004f658] kthread+0x98/0xa0
    [e700ff40] [c000fd04] ret_from_kernel_thread+0x5c/0x64

    Signed-off-by: Herbert Xu

    Cristian Stoica
     

23 Jul, 2014

7 commits

  • state->buf_dma not being initialized can cause try_buf_map_to_sec4_sg
    to try to free unallocated DMA memory:

    caam_jr ffe301000.jr: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x000000002eb15068] [size=0 bytes]
    WARNING: at lib/dma-debug.c:1080
    Modules linked in: caamhash(+) [last unloaded: caamhash]
    CPU: 0 PID: 1387 Comm: cryptomgr_test Tainted: G W 3.16.0-rc1 #23
    task: eed24e90 ti: eebd0000 task.ti: eebd0000
    NIP: c02889fc LR: c02889fc CTR: c02d7020
    REGS: eebd1a50 TRAP: 0700 Tainted: G W (3.16.0-rc1)
    MSR: 00029002 CR: 44042082 XER: 00000000

    GPR00: c02889fc eebd1b00 eed24e90 0000008d c1de3478 c1de382c 00000000 00029002
    GPR08: 00000007 00000000 01660000 00000000 24042082 00000000 c07a1900 eeda2a40
    GPR16: 005d62a0 c078ad4c 00000000 eeb15068 c07e1e10 c0da1180 00029002 c0d97408
    GPR24: c62497a0 00000014 eebd1b58 00000000 c078ad4c ee130210 00000000 2eb15068
    NIP [c02889fc] check_unmap+0x8ac/0xab0
    LR [c02889fc] check_unmap+0x8ac/0xab0
    Call Trace:
    [eebd1b00] [c02889fc] check_unmap+0x8ac/0xab0 (unreliable)
    --- Exception: 0 at (null)
    LR = (null)
    [eebd1b50] [c0288c78] debug_dma_unmap_page+0x78/0x90 (unreliable)
    [eebd1bd0] [f956f738] ahash_final_ctx+0x6d8/0x7b0 [caamhash]
    [eebd1c30] [c022ff4c] __test_hash+0x2ac/0x6c0
    [eebd1de0] [c0230388] test_hash+0x28/0xb0
    [eebd1e00] [c02304a4] alg_test_hash+0x94/0xc0
    [eebd1e20] [c022fa94] alg_test+0x114/0x2e0
    [eebd1ea0] [c022cd1c] cryptomgr_test+0x4c/0x60
    [eebd1eb0] [c00497a4] kthread+0xc4/0xe0
    [eebd1f40] [c000f2fc] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    41de01c8 80a9002c 2f850000 40fe0008 80a90008 80fa0018 3c60c06d 811a001c
    3863f4a4 813a0020 815a0024 4830cd01 81340048 2f890000 40feff48

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • dst_dma not being properly initialized causes ahash_done_ctx_dst
    to try to free unallocated DMA memory:

    caam_jr ffe301000.jr: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x0000000006513340] [size=28 bytes]
    WARNING: at lib/dma-debug.c:1080
    Modules linked in: caamhash(+) [last unloaded: caamhash]
    CPU: 0 PID: 1373 Comm: cryptomgr_test Tainted: G W 3.16.0-rc1 #23
    task: ee23e350 ti: effd2000 task.ti: ee1f6000
    NIP: c02889fc LR: c02889fc CTR: c02d7020
    REGS: effd3d50 TRAP: 0700 Tainted: G W (3.16.0-rc1)
    MSR: 00029002 CR: 44048082 XER: 00000000

    GPR00: c02889fc effd3e00 ee23e350 0000008e c1de3478 c1de382c 00000000 00029002
    GPR08: 00000007 00000000 01660000 00000000 24048082 00000000 00000018 c07db080
    GPR16: 00000006 00000100 0000002c eeb4a7e0 c07e1e10 c0da1180 00029002 c0d9b3c8
    GPR24: eeb4a7c0 00000000 effd3e58 00000000 c078ad4c ee130210 00000000 06513340
    NIP [c02889fc] check_unmap+0x8ac/0xab0
    LR [c02889fc] check_unmap+0x8ac/0xab0
    Call Trace:
    [effd3e00] [c02889fc] check_unmap+0x8ac/0xab0 (unreliable)
    [effd3e50] [c0288c78] debug_dma_unmap_page+0x78/0x90
    [effd3ed0] [f94b89ec] ahash_done_ctx_dst+0x11c/0x200 [caamhash]
    [effd3f00] [c0429640] caam_jr_dequeue+0x1c0/0x280
    [effd3f50] [c002c94c] tasklet_action+0xcc/0x1a0
    [effd3f80] [c002cb30] __do_softirq+0x110/0x220
    [effd3fe0] [c002cf34] irq_exit+0xa4/0xe0
    [effd3ff0] [c000d834] call_do_irq+0x24/0x3c
    [ee1f7ae0] [c000489c] do_IRQ+0x8c/0x110
    [ee1f7b00] [c000f86c] ret_from_except+0x0/0x18
    --- Exception: 501 at _raw_spin_unlock_irq+0x30/0x50
    LR = _raw_spin_unlock_irq+0x2c/0x50
    [ee1f7bd0] [c0590158] wait_for_common+0xb8/0x170
    [ee1f7c10] [c059024c] wait_for_completion_interruptible+0x1c/0x40
    [ee1f7c20] [c022fc78] do_one_async_hash_op.isra.2.part.3+0x18/0x40
    [ee1f7c30] [c022ffb8] __test_hash+0x318/0x6c0
    [ee1f7de0] [c0230388] test_hash+0x28/0xb0
    [ee1f7e00] [c02304a4] alg_test_hash+0x94/0xc0
    [ee1f7e20] [c022fa94] alg_test+0x114/0x2e0
    [ee1f7ea0] [c022cd1c] cryptomgr_test+0x4c/0x60
    [ee1f7eb0] [c00497a4] kthread+0xc4/0xe0
    [ee1f7f40] [c000f2fc] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    41de01c8 80a9002c 2f850000 40fe0008 80a90008 80fa0018 3c60c06d 811a001c
    3863f4a4 813a0020 815a0024 4830cd01 81340048 2f890000 40feff48

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • Not initializing edesc->sec4_sg_bytes correctly causes ahash_done
    callback to free unallocated DMA memory:

    caam_jr ffe301000.jr: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x300900000000b44d] [size=46158 bytes]
    WARNING: at lib/dma-debug.c:1080
    Modules linked in: caamhash(+) [last unloaded: caamhash]
    CPU: 0 PID: 1358 Comm: cryptomgr_test Tainted: G W 3.16.0-rc1 #23
    task: eed04250 ti: effd2000 task.ti: c6046000
    NIP: c02889fc LR: c02889fc CTR: c02d7020
    REGS: effd3d50 TRAP: 0700 Tainted: G W (3.16.0-rc1)
    MSR: 00029002 CR: 44048082 XER: 00000000

    GPR00: c02889fc effd3e00 eed04250 00000091 c1de3478 c1de382c 00000000 00029002
    GPR08: 00000007 00000000 01660000 00000000 22048082 00000000 00000018 c07db080
    GPR16: 00000006 00000100 0000002c ee2497e0 c07e1e10 c0da1180 00029002 c0d912c8
    GPR24: 00000014 ee2497c0 effd3e58 00000000 c078ad4c ee130210 30090000 0000b44d
    NIP [c02889fc] check_unmap+0x8ac/0xab0
    LR [c02889fc] check_unmap+0x8ac/0xab0
    Call Trace:
    [effd3e00] [c02889fc] check_unmap+0x8ac/0xab0 (unreliable)
    [effd3e50] [c0288c78] debug_dma_unmap_page+0x78/0x90
    [effd3ed0] [f9404fec] ahash_done+0x11c/0x190 [caamhash]
    [effd3f00] [c0429640] caam_jr_dequeue+0x1c0/0x280
    [effd3f50] [c002c94c] tasklet_action+0xcc/0x1a0
    [effd3f80] [c002cb30] __do_softirq+0x110/0x220
    [effd3fe0] [c002cf34] irq_exit+0xa4/0xe0
    [effd3ff0] [c000d834] call_do_irq+0x24/0x3c
    [c6047ae0] [c000489c] do_IRQ+0x8c/0x110
    [c6047b00] [c000f86c] ret_from_except+0x0/0x18
    --- Exception: 501 at _raw_spin_unlock_irq+0x30/0x50
    LR = _raw_spin_unlock_irq+0x2c/0x50
    [c6047bd0] [c0590158] wait_for_common+0xb8/0x170
    [c6047c10] [c059024c] wait_for_completion_interruptible+0x1c/0x40
    [c6047c20] [c022fc78] do_one_async_hash_op.isra.2.part.3+0x18/0x40
    [c6047c30] [c022ff98] __test_hash+0x2f8/0x6c0
    [c6047de0] [c0230388] test_hash+0x28/0xb0
    [c6047e00] [c0230458] alg_test_hash+0x48/0xc0
    [c6047e20] [c022fa94] alg_test+0x114/0x2e0
    [c6047ea0] [c022cd1c] cryptomgr_test+0x4c/0x60
    [c6047eb0] [c00497a4] kthread+0xc4/0xe0
    [c6047f40] [c000f2fc] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    41de01c8 80a9002c 2f850000 40fe0008 80a90008 80fa0018 3c60c06d 811a001c
    3863f4a4 813a0020 815a0024 4830cd01 81340048 2f890000 40feff48

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • caam_jr ffe301000.jr: DMA-API: device driver frees DMA memory with different direction [device address=0x0000000006271dac] [size=28 bytes] [mapped with DMA_TO_DEVICE] [unmapped with DMA_FROM_DEVICE]
    ------------[ cut here ]------------
    WARNING: at lib/dma-debug.c:1131
    Modules linked in: caamhash(+) [last unloaded: caamhash]
    CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.16.0-rc1 #23
    task: c0789380 ti: effd2000 task.ti: c07d6000
    NIP: c02885cc LR: c02885cc CTR: c02d7020
    REGS: effd3d50 TRAP: 0700 Tainted: G W (3.16.0-rc1)
    MSR: 00021002 CR: 44048082 XER: 00000000

    GPR00: c02885cc effd3e00 c0789380 000000c6 c1de3478 c1de382c 00000000 00021002
    GPR08: 00000007 00000000 01660000 0000012f 84048082 00000000 00000018 c07db080
    GPR16: 00000006 00000100 0000002c c62517a0 c07e1e10 c0da1180 00029002 c0d95f88
    GPR24: c07a0000 c07a4acc effd3e58 ee322bc0 0000001c ee130210 00000000 c0d95f80
    NIP [c02885cc] check_unmap+0x47c/0xab0
    LR [c02885cc] check_unmap+0x47c/0xab0
    Call Trace:
    [effd3e00] [c02885cc] check_unmap+0x47c/0xab0 (unreliable)
    [effd3e50] [c0288c78] debug_dma_unmap_page+0x78/0x90
    [effd3ed0] [f9624d84] ahash_done_ctx_src+0xa4/0x200 [caamhash]
    [effd3f00] [c0429640] caam_jr_dequeue+0x1c0/0x280
    [effd3f50] [c002c94c] tasklet_action+0xcc/0x1a0
    [effd3f80] [c002cb30] __do_softirq+0x110/0x220
    [effd3fe0] [c002cf34] irq_exit+0xa4/0xe0
    [effd3ff0] [c000d834] call_do_irq+0x24/0x3c
    [c07d7d50] [c000489c] do_IRQ+0x8c/0x110
    [c07d7d70] [c000f86c] ret_from_except+0x0/0x18
    --- Exception: 501 at _raw_spin_unlock_irq+0x30/0x50
    LR = _raw_spin_unlock_irq+0x2c/0x50
    [c07d7e40] [c0053084] finish_task_switch+0x74/0x130
    [c07d7e60] [c058f278] __schedule+0x238/0x620
    [c07d7f70] [c058fb50] schedule_preempt_disabled+0x10/0x20
    [c07d7f80] [c00686a0] cpu_startup_entry+0x100/0x1b0
    [c07d7fb0] [c074793c] start_kernel+0x338/0x34c
    [c07d7ff0] [c00003d8] set_ivor+0x140/0x17c
    Instruction dump:
    7d495214 7d294214 806a0010 80c90010 811a001c 813a0020 815a0024 90610008
    3c60c06d 90c1000c 3863f764 4830d131 3c60c06d 3863f0f4 4830d121
    ---[ end trace db1fae088c75c280 ]---
    Mapped at:
    [] ahash_final_ctx+0x14c/0x7b0 [caamhash]
    [] __test_hash+0x2ac/0x6c0
    [] test_hash+0x28/0xb0
    [] alg_test_hash+0x94/0xc0
    [] alg_test+0x114/0x2e0

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • caam_jr ffe301000.jr: DMA-API: device driver frees DMA memory with different direction [device address=0x00000000062ad1ac] [size=28 bytes] [mapped with DMA_FROM_DEVICE] [unmapped with DMA_TO_DEVICE]
    ------------[ cut here ]------------
    WARNING: at lib/dma-debug.c:1131
    Modules linked in: caamhash(+) [last unloaded: caamhash]
    CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.16.0-rc1 #23
    task: c0789380 ti: effd2000 task.ti: c07d6000
    NIP: c02885cc LR: c02885cc CTR: c02d7020
    REGS: effd3d50 TRAP: 0700 Tainted: G W (3.16.0-rc1)
    MSR: 00021002 CR: 44048082 XER: 00000000

    GPR00: c02885cc effd3e00 c0789380 000000c6 c1de3478 c1de382c 00000000 00021002
    GPR08: 00000007 00000000 01660000 0000012f 84048082 00000000 00000018 c07db080
    GPR16: 00000006 00000100 0000002c eee567e0 c07e1e10 c0da1180 00029002 c0d96708
    GPR24: c07a0000 c07a4acc effd3e58 ee29b140 0000001c ee130210 00000000 c0d96700
    NIP [c02885cc] check_unmap+0x47c/0xab0
    LR [c02885cc] check_unmap+0x47c/0xab0
    Call Trace:
    [effd3e00] [c02885cc] check_unmap+0x47c/0xab0 (unreliable)
    [effd3e50] [c0288c78] debug_dma_unmap_page+0x78/0x90
    [effd3ed0] [f9350974] ahash_done_ctx_dst+0xa4/0x200 [caamhash]
    [effd3f00] [c0429640] caam_jr_dequeue+0x1c0/0x280
    [effd3f50] [c002c94c] tasklet_action+0xcc/0x1a0
    [effd3f80] [c002cb30] __do_softirq+0x110/0x220
    [effd3fe0] [c002cf34] irq_exit+0xa4/0xe0
    [effd3ff0] [c000d834] call_do_irq+0x24/0x3c
    [c07d7d50] [c000489c] do_IRQ+0x8c/0x110
    [c07d7d70] [c000f86c] ret_from_except+0x0/0x18
    --- Exception: 501 at _raw_spin_unlock_irq+0x30/0x50
    LR = _raw_spin_unlock_irq+0x2c/0x50
    [c07d7e40] [c0053084] finish_task_switch+0x74/0x130
    [c07d7e60] [c058f278] __schedule+0x238/0x620
    [c07d7f70] [c058fb50] schedule_preempt_disabled+0x10/0x20
    [c07d7f80] [c00686a0] cpu_startup_entry+0x100/0x1b0
    [c07d7fb0] [c074793c] start_kernel+0x338/0x34c
    [c07d7ff0] [c00003d8] set_ivor+0x140/0x17c
    Instruction dump:
    7d495214 7d294214 806a0010 80c90010 811a001c 813a0020 815a0024 90610008
    3c60c06d 90c1000c 3863f764 4830d131 3c60c06d 3863f0f4 4830d121
    ---[ end trace db1fae088c75c270 ]---
    Mapped at:
    [] ahash_update_first+0x5b4/0xba0 [caamhash]
    [] __test_hash+0x288/0x6c0
    [] test_hash+0x28/0xb0
    [] alg_test_hash+0x94/0xc0
    [] alg_test+0x114/0x2e0

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • Key being hashed is unmapped using the digest size instead of
    initial length:

    caam_jr ffe301000.jr: DMA-API: device driver frees DMA memory with different size [device address=0x000000002eeedac0] [map size=80 bytes] [unmap size=20 bytes]
    ------------[ cut here ]------------
    WARNING: at lib/dma-debug.c:1090
    Modules linked in: caamhash(+)
    CPU: 0 PID: 1327 Comm: cryptomgr_test Not tainted 3.16.0-rc1 #23
    task: eebda5d0 ti: ee26a000 task.ti: ee26a000
    NIP: c0288790 LR: c0288790 CTR: c02d7020
    REGS: ee26ba30 TRAP: 0700 Not tainted (3.16.0-rc1)
    MSR: 00021002 CR: 44022082 XER: 00000000

    GPR00: c0288790 ee26bae0 eebda5d0 0000009f c1de3478 c1de382c 00000000 00021002
    GPR08: 00000007 00000000 01660000 0000012f 82022082 00000000 c07a1900 eeda29c0
    GPR16: 00000000 c61deea0 000c49a0 00000260 c07e1e10 c0da1180 00029002 c0d9ef08
    GPR24: c07a0000 c07a4acc ee26bb38 ee2765c0 00000014 ee130210 00000000 00000014
    NIP [c0288790] check_unmap+0x640/0xab0
    LR [c0288790] check_unmap+0x640/0xab0
    Call Trace:
    [ee26bae0] [c0288790] check_unmap+0x640/0xab0 (unreliable)
    [ee26bb30] [c0288c78] debug_dma_unmap_page+0x78/0x90
    [ee26bbb0] [f929c3d4] ahash_setkey+0x374/0x720 [caamhash]
    [ee26bc30] [c022fec8] __test_hash+0x228/0x6c0
    [ee26bde0] [c0230388] test_hash+0x28/0xb0
    [ee26be00] [c0230458] alg_test_hash+0x48/0xc0
    [ee26be20] [c022fa94] alg_test+0x114/0x2e0
    [ee26bea0] [c022cd1c] cryptomgr_test+0x4c/0x60
    [ee26beb0] [c00497a4] kthread+0xc4/0xe0
    [ee26bf40] [c000f2fc] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    41de03e8 83da0020 3c60c06d 83fa0024 3863f520 813b0020 815b0024 80fa0018
    811a001c 93c10008 93e1000c 4830cf6d 3c60c06d 3863f0f4 4830cf5d
    ---[ end trace db1fae088c75c26c ]---
    Mapped at:
    [] ahash_setkey+0xfc/0x720 [caamhash]
    [] __test_hash+0x228/0x6c0
    [] test_hash+0x28/0xb0
    [] alg_test_hash+0x48/0xc0
    [] alg_test+0x114/0x2e0

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     
  • Use dma_mapping_error for every dma_map_single / dma_map_page.

    Signed-off-by: Horia Geanta
    Acked-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Horia Geanta
     

10 Jul, 2014

1 commit


25 Jun, 2014

1 commit

  • At few places in caamhash and caamalg, after allocating a dmable
    buffer for sg table , the buffer was being modified. As per
    definition of DMA_FROM_DEVICE ,afer allocation the memory should
    be treated as read-only by the driver. This patch shifts the
    allocation of dmable buffer for sg table after it is populated
    by the driver, making it read-only as per the DMA API's requirement.

    Signed-off-by: Ruchika Gupta
    Signed-off-by: Herbert Xu

    Ruchika Gupta
     

08 May, 2014

1 commit


28 Apr, 2014

1 commit

  • In case hash key is bigger than algorithm block size, it is hashed.
    In this case, memory is allocated to keep this hash in hashed_key.
    hashed_key has to be freed on the key_dma dma mapping error path.

    Signed-off-by: Horia Geanta
    Reviewed-by: Marek Vasut
    Signed-off-by: Herbert Xu

    Horia Geanta
     

30 Oct, 2013

2 commits

  • - Earlier interface layers - caamalg, caamhash, caamrng were
    directly using the Controller driver private structure to access
    the Job ring.
    - Changed the above to use alloc/free API's provided by Job Ring Drive

    Signed-off-by: Ruchika Gupta
    Reviewed-by: Garg Vakul-B16394
    Signed-off-by: Herbert Xu

    Ruchika Gupta
     
  • The SEC Job Rings are now available as individual devices.
    This would enable sharing of job rings between kernel and
    user space. Job Rings can now be dynamically bound/unbound
    from kernel.

    Changes are made in the following layers of CAAM Driver
    1. Controller driver
    - Does basic initialization of CAAM Block.
    - Creates platform devices for Job Rings.
    (Earlier the initialization of Job ring was done
    by the controller driver)

    2. JobRing Platform driver
    - Manages the platform Job Ring devices created
    by the controller driver

    Signed-off-by: Ruchika Gupta
    Reviewed-by: Garg Vakul-B16394
    Signed-off-by: Herbert Xu

    Ruchika Gupta
     

13 Sep, 2013

1 commit


07 Sep, 2013

1 commit


21 Aug, 2013

1 commit


10 Jul, 2013

2 commits

  • DESC_JOB_IO_LEN is a generic macro which indicates the space required in
    the descriptor for placing SEQIN/OUT commands, job descriptor header,
    shared descriptor pointer. Moving it to descriptor construction file
    which can be supposedly included by different algo offload files.

    Change-Id: Ic8900990d465e9079827b0c7fcacc61766d7efb6
    Signed-off-by: Vakul Garg
    Reviewed-by: Geanta Neag Horia Ioan-B05471
    Reviewed-by: Fleming Andrew-AFLEMING
    Tested-by: Fleming Andrew-AFLEMING
    Signed-off-by: Herbert Xu

    Vakul Garg
     
  • When kernel is compiled with CONFIG_SLUB_DEBUG=y and
    CRYPTO_MANAGER_DISABLE_TESTS=n, during kernel bootup, the kernel
    reports error given below. The root cause is that in function
    hash_digest_key(), for allocating descriptor, insufficient memory was
    being allocated. The required number of descriptor words apart from
    input and output pointers are 8 (instead of 6).

    =============================================================================
    BUG dma-kmalloc-32 (Not tainted): Redzone overwritten
    -----------------------------------------------------------------------------

    Disabling lock debugging due to kernel taint
    INFO: 0xdec5dec0-0xdec5dec3. First byte 0x0 instead of 0xcc
    INFO: Allocated in ahash_setkey+0x60/0x594 age=7 cpu=1 pid=1257
    __kmalloc+0x154/0x1b4
    ahash_setkey+0x60/0x594
    test_hash+0x260/0x5a0
    alg_test_hash+0x48/0xb0
    alg_test+0x84/0x228
    cryptomgr_test+0x4c/0x54
    kthread+0x98/0x9c
    ret_from_kernel_thread+0x64/0x6c
    INFO: Slab 0xc0bd0ba0 objects=19 used=2 fp=0xdec5d0d0 flags=0x0081
    INFO: Object 0xdec5dea0 @offset=3744 fp=0x5c200014

    Bytes b4 dec5de90: 00 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a
    ........ZZZZZZZZ
    Object dec5dea0: b0 80 00 0a 84 41 00 0d f0 40 00 00 00 67 3f c0
    .....A...@...g?.
    Object dec5deb0: 00 00 00 50 2c 14 00 50 f8 40 00 00 1e c5 d0 00
    ...P,..P.@......
    Redzone dec5dec0: 00 00 00 14 ....
    Padding dec5df68: 5a 5a 5a 5a 5a 5a 5a 5a
    ZZZZZZZZ
    Call Trace:
    [dec65b60] [c00071b4] show_stack+0x4c/0x168 (unreliable)
    [dec65ba0] [c00d4ec8] check_bytes_and_report+0xe4/0x11c
    [dec65bd0] [c00d507c] check_object+0x17c/0x23c
    [dec65bf0] [c0550a00] free_debug_processing+0xf4/0x294
    [dec65c20] [c0550bdc] __slab_free+0x3c/0x294
    [dec65c80] [c03f0744] ahash_setkey+0x4e0/0x594
    [dec65cd0] [c01ef138] test_hash+0x260/0x5a0
    [dec65e50] [c01ef4c0] alg_test_hash+0x48/0xb0
    [dec65e70] [c01eecc4] alg_test+0x84/0x228
    [dec65ee0] [c01ec640] cryptomgr_test+0x4c/0x54
    [dec65ef0] [c005adc0] kthread+0x98/0x9c
    [dec65f40] [c000e1ac] ret_from_kernel_thread+0x64/0x6c
    FIX dma-kmalloc-32: Restoring 0xdec5dec0-0xdec5dec3=0xcc

    Change-Id: I0c7a1048053e811025d1c3b487940f87345c8f5d
    Signed-off-by: Vakul Garg
    CC: #3.9
    Reviewed-by: Geanta Neag Horia Ioan-B05471
    Reviewed-by: Fleming Andrew-AFLEMING
    Tested-by: Fleming Andrew-AFLEMING
    Signed-off-by: Herbert Xu

    Vakul Garg
     

25 Apr, 2013

1 commit


07 Sep, 2012

1 commit


01 Aug, 2012

2 commits

  • SHARE_WAIT, whilst more optimal for association-less crypto,
    has the ability to start thrashing the CCB descriptor/key
    caches, given high levels of traffic across multiple security
    associations (and thus keys).

    Switch to using the SERIAL sharing type, which prefers
    the last used CCB for the SA. On a 2-DECO platform
    such as the P3041, this can improve performance by
    about 3.7%.

    Signed-off-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Kim Phillips
     
  • In some device trees of previous version, there were string "fsl,sec4.0".
    To be backward compatible with device trees, we first check "fsl,sec-v4.0",
    if it fails, then check for "fsl,sec4.0".

    Signed-off-by: Shengzhou Liu

    extended to include new hash and rng code, which was omitted from
    the previous version of this patch during a rebase of the SDK
    version.

    Signed-off-by: Kim Phillips
    Signed-off-by: Herbert Xu

    Shengzhou Liu
     

27 Jun, 2012

3 commits