04 Apr, 2014

1 commit

  • Pull crypto updates from Herbert Xu:
    "Here is the crypto update for 3.15:
    - Added 3DES driver for OMAP4/AM43xx
    - Added AVX2 acceleration for SHA
    - Added hash-only AEAD algorithms in caam
    - Removed tegra driver as it is not functioning and the hardware is
    too slow
    - Allow blkcipher walks over AEAD (needed for ARM)
    - Fixed unprotected FPU/SSE access in ghash-clmulni-intel
    - Fixed highmem crash in omap-sham
    - Add (zero entropy) randomness when initialising hardware RNGs
    - Fixed unaligned ahash comletion functions
    - Added soft module depedency for crc32c for initrds that use crc32c"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (60 commits)
    crypto: ghash-clmulni-intel - use C implementation for setkey()
    crypto: x86/sha1 - reduce size of the AVX2 asm implementation
    crypto: x86/sha1 - fix stack alignment of AVX2 variant
    crypto: x86/sha1 - re-enable the AVX variant
    crypto: sha - SHA1 transform x86_64 AVX2
    crypto: crypto_wq - Fix late crypto work queue initialization
    crypto: caam - add missing key_dma unmap
    crypto: caam - add support for aead null encryption
    crypto: testmgr - add aead null encryption test vectors
    crypto: export NULL algorithms defines
    crypto: caam - remove error propagation handling
    crypto: hash - Simplify the ahash_finup implementation
    crypto: hash - Pull out the functions to save/restore request
    crypto: hash - Fix the pointer voodoo in unaligned ahash
    crypto: caam - Fix first parameter to caam_init_rng
    crypto: omap-sham - Map SG pages if they are HIGHMEM before accessing
    crypto: caam - Dynamic memory allocation for caam_rng_ctx object
    crypto: allow blkcipher walks over AEAD data
    crypto: remove direct blkcipher_walk dependency on transform
    hwrng: add randomness to system from rng sources
    ...

    Linus Torvalds
     

21 Mar, 2014

4 commits


10 Mar, 2014

10 commits


27 Feb, 2014

11 commits


11 Feb, 2014

1 commit

  • The powerpc specific nx-842 compression driver does not currently
    handle translating a vmalloc address to a physical address.

    The current driver uses __pa() for all addresses which does not
    properly handle vmalloc addresses and thus causes a failure since
    we do not pass a proper physical address to the hypervisor.

    This patch adds a routine to convert an address to a physical
    address by checking for vmalloc addresses and handling them properly.

    Signed-off-by: Nathan Fontenot
    ---
    drivers/crypto/nx/nx-842.c | 29 +++++++++++++++++++----------
    1 file changed, 19 insertions(+), 10 deletions(-)
    Signed-off-by: Benjamin Herrenschmidt

    Nathan Fontenot
     

09 Feb, 2014

11 commits

  • SEC ERA has to be retrieved by reading the "fsl,sec-era" property
    from the device tree. This property is updated/filled in by
    u-boot.

    Signed-off-by: Alex Porosanu
    Reviewed-by: Horia Geanta
    Signed-off-by: Herbert Xu

    Alex Porosanu
     
  • stmp_reset_block() may fail, so check its return value and propagate it in the
    case of error.

    Signed-off-by: Fabio Estevam
    Acked-by: Marek Vasut
    Signed-off-by: Herbert Xu

    Fabio Estevam
     
  • Using devm_kzalloc() can make the code cleaner.

    While at it, remove the devm_kzalloc error message as there is standard OOM
    message done by the core.

    Signed-off-by: Fabio Estevam
    Acked-by: Marek Vasut
    Signed-off-by: Herbert Xu

    Fabio Estevam
     
  • In function talitos_probe(), it will jump to err_out when getting an
    error in talitos_probe_irq(). Then the uninitialized list head
    priv->alg_list will be used in function talitos_remove(). In this case
    we would get a call trace like the following. So move up the
    initialization of priv->alg_list.

    Unable to handle kernel paging request for data at address 0x00000000
    Faulting instruction address: 0xc0459ff4
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=8 P1020 RDB
    Modules linked in:
    CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 3.13.0-08789-g54c0a4b46150 #33
    task: cf050000 ti: cf04c000 task.ti: cf04c000
    NIP: c0459ff4 LR: c0459fd4 CTR: c02f2438
    REGS: cf04dcb0 TRAP: 0300 Tainted: G W (3.13.0-08789-g54c0a4b46150)
    MSR: 00029000 CR: 82000028 XER: 20000000
    DEAR: 00000000 ESR: 00000000
    GPR00: c045ac28 cf04dd60 cf050000 cf2579c0 00021000 00000000 c02f35b0 0000014e
    GPR08: c07e702c cf104300 c07e702c 0000014e 22000024 00000000 c0002a3c 00000000
    GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 c082e4e0 000000df
    GPR24: 00000000 00100100 00200200 cf257a2c cf0efe10 cf2579c0 cf0efe10 00000000
    NIP [c0459ff4] talitos_remove+0x3c/0x1c8
    LR [c0459fd4] talitos_remove+0x1c/0x1c8
    Call Trace:
    [cf04dd60] [c07485d8] __func__.13331+0x1241c8/0x1391c0 (unreliable)
    [cf04dd90] [c045ac28] talitos_probe+0x244/0x998
    [cf04dde0] [c0306a74] platform_drv_probe+0x28/0x68
    [cf04ddf0] [c0304d38] really_probe+0x78/0x250
    [cf04de10] [c030505c] __driver_attach+0xc8/0xcc
    [cf04de30] [c0302e98] bus_for_each_dev+0x6c/0xb8
    [cf04de60] [c03043cc] bus_add_driver+0x168/0x220
    [cf04de80] [c0305798] driver_register+0x88/0x130
    [cf04de90] [c0002458] do_one_initcall+0x14c/0x198
    [cf04df00] [c079f904] kernel_init_freeable+0x138/0x1d4
    [cf04df30] [c0002a50] kernel_init+0x14/0x124
    [cf04df40] [c000ec40] ret_from_kernel_thread+0x5c/0x64

    Signed-off-by: Kevin Hao
    Signed-off-by: Herbert Xu

    Kevin Hao
     
  • Change from scheduling work to scheduling a tasklet to perform
    the callback operations.

    Signed-off-by: Tom Lendacky
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • Move to a single queue to serialize requests within a tfm. When
    testing using IPSec with a large number of network connections
    the per cpu tfm queuing logic was not working properly.

    Signed-off-by: Tom Lendacky
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • Move the support to perform an HMAC calculation into
    the CCP operations file. This eliminates the need to
    perform a synchronous SHA operation used to calculate
    the HMAC.

    Signed-off-by: Tom Lendacky
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • Introduce module parameters that allow for disabling of a
    crypto algorithm by not registering the algorithm with the
    crypto API.

    Signed-off-by: Tom Lendacky
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • There are some suspicious looking lines of code in the new ccp driver, including
    one that assigns a variable to itself, and another that overwrites a previous assignment.

    This may have been a cut-and-paste error where 'src' was forgotten to be changed to 'dst'.
    I have no hardware to test this, so this is untested.

    Signed-off-by: Dave Jones
    Acked-by: Tom Lendacky
    Signed-off-by: Herbert Xu

    Dave Jones
     
  • The SEC Controller driver creates platform devices for it's child job ring nodes.
    Currently the driver uses for_each_compatible routine which traverses
    the whole device tree to create the job rings for the platform device.
    The patch changes this to search for the compatible property of job ring
    only in the child nodes i.e., the job rings are created as per the number
    of children associated with the crypto node.

    Signed-off-by: Nitesh Lal
    Reviewed-by: Horia Geanta
    Signed-off-by: Herbert Xu

    Nitesh Lal
     
  • Move the AES operation type and mode from async crypto context to
    crypto request context. This allows for recycling of the async crypto
    context for different kinds of operations.

    I found this problem when I used dm-crypt, which uses the same async
    crypto context (actx) for both encryption and decryption requests.
    Since the requests are enqueued into the processing queue, immediatelly
    storing the type of operation into async crypto context (actx) caused
    corruption of this information when encryption and decryption operations
    followed imediatelly one after the other. When the first operation was
    dequeued, the second operation was already enqueued and overwritten the
    type of operation in actx, thus causing incorrect result of the first
    operation.

    Fix this problem by storing the type of operation into the crypto request
    context.

    Signed-off-by: Marek Vasut
    Cc: David S. Miller
    Cc: Fabio Estevam
    Cc: Shawn Guo
    Cc: Tom Lendacky
    Signed-off-by: Herbert Xu

    Marek Vasut
     

24 Jan, 2014

2 commits

  • Pull ARM driver updates from Olof Johansson:
    "Updates of SoC-near drivers and other driver updates that makes more
    sense to take through our tree.

    The largest part of this is a conversion of device registration for
    some renesas shmobile/sh devices over to use resources. This has
    required coordination with the corresponding arch/sh changes, and
    we've agreed to merge the arch/sh changes through our tree.

    Added in this branch is support for Trusted Foundations secure
    firmware, which is what is used on many of the commercial Nvidia Tegra
    products that are in the market, including the Nvidia Shield. The
    code is local to arch/arm at this time since it's uncertain whether it
    will be shared with arm64 longer-term, if needed we will refactor
    later.

    A couple of new RTC drivers used on ARM boards, merged through our
    tree on request by the RTC maintainer.

    ... plus a bunch of smaller updates across the board, gpio conversions
    for davinci, etc"

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
    watchdog: davinci: rename platform driver to davinci-wdt
    tty: serial: Limit msm_serial_hs driver to platforms that use it
    mmc: msm_sdcc: Limit driver to platforms that use it
    usb: phy: msm: Move mach dependent code to platform data
    clk: versatile: fixup IM-PD1 clock implementation
    clk: versatile: pass a name to ICST clock provider
    ARM: integrator: pass parent IRQ to the SIC
    irqchip: versatile FPGA: support cascaded interrupts from DT
    gpio: davinci: don't create irq_domain in case of unbanked irqs
    gpio: davinci: use chained_irq_enter/chained_irq_exit API
    gpio: davinci: add OF support
    gpio: davinci: remove unused variable intc_irq_num
    gpio: davinci: convert to use irqdomain support.
    gpio: introduce GPIO_DAVINCI kconfig option
    gpio: davinci: get rid of DAVINCI_N_GPIO
    gpio: davinci: use {readl|writel}_relaxed() instead of __raw_*
    serial: sh-sci: Add OF support
    serial: sh-sci: Add device tree bindings documentation
    serial: sh-sci: Remove platform data mapbase and irqs fields
    serial: sh-sci: Remove platform data scbrr_algo_id field
    ...

    Linus Torvalds
     
  • Pull crypto update from Herbert Xu:
    "Here is the crypto update for 3.14:

    - Improved crypto_memneq helper
    - Use cyprto_memneq in arch-specific crypto code
    - Replaced orphaned DCP driver with Freescale MXS DCP driver
    - Added AVX/AVX2 version of AESNI-GCM encode and decode
    - Added AMD Cryptographic Coprocessor (CCP) driver
    - Misc fixes"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (41 commits)
    crypto: aesni - fix build on x86 (32bit)
    crypto: mxs - Fix sparse non static symbol warning
    crypto: ccp - CCP device enabled/disabled changes
    crypto: ccp - Cleanup hash invocation calls
    crypto: ccp - Change data length declarations to u64
    crypto: ccp - Check for caller result area before using it
    crypto: ccp - Cleanup scatterlist usage
    crypto: ccp - Apply appropriate gfp_t type to memory allocations
    crypto: drivers - Sort drivers/crypto/Makefile
    ARM: mxs: dts: Enable DCP for MXS
    crypto: mxs - Add Freescale MXS DCP driver
    crypto: mxs - Remove the old DCP driver
    crypto: ahash - Fully restore ahash request before completing
    crypto: aesni - fix build on x86 (32bit)
    crypto: talitos - Remove redundant dev_set_drvdata
    crypto: ccp - Remove redundant dev_set_drvdata
    crypto: crypto4xx - Remove redundant dev_set_drvdata
    crypto: caam - simplify and harden key parsing
    crypto: omap-sham - Fix Polling mode for larger blocks
    crypto: tcrypt - Added speed tests for AEAD crypto alogrithms in tcrypt test suite
    ...

    Linus Torvalds