1. 01 Nov, 2019 7 commits
  2. 25 Oct, 2019 33 commits
    • Mark Salter's avatar
      crypto: ccp - fix uninitialized list head · 691505a8
      Mark Salter authored
      A NULL-pointer dereference was reported in fedora bz#1762199 while
      reshaping a raid6 array after adding a fifth drive to an existing
      array.
      
      [   47.343549] md/raid:md0: raid level 6 active with 3 out of 5 devices, algorithm 2
      [   47.804017] md0: detected capacity change from 0 to 7885289422848
      [   47.822083] Unable to handle kernel read from unreadable memory at virtual address 0000000000000000
      ...
      [   47.940477] CPU: 1 PID: 14210 Comm: md0_raid6 Tainted: G        W         5.2.18-200.fc30.aarch64 #1
      [   47.949594] Hardware name: AMD Overdrive/Supercharger/To be filled by O.E.M., BIOS ROD1002C 04/08/2016
      [   47.958886] pstate: 00400085 (nzcv daIf +PAN -UAO)
      [   47.963668] pc : __list_del_entry_valid+0x2c/0xa8
      [   47.968366] lr : ccp_tx_submit+0x84/0x168 [ccp]
      [   47.972882] sp : ffff00001369b970
      [   47.976184] x29: ffff00001369b970 x28: ffff00001369bdb8
      [   47.981483] x27: 00000000ffffffff x26: ffff8003b758af70
      [   47.986782] x25: ffff8003b758b2d8 x24: ffff8003e6245818
      [   47.992080] x23: 0000000000000000 x22: ffff8003e62450c0
      [   47.997379] x21: ffff8003dfd6add8 x20: 0000000000000003
      [   48.002678] x19: ffff8003e6245100 x18: 0000000000000000
      [   48.007976] x17: 0000000000000000 x16: 0000000000000000
      [   48.013274] x15: 0000000000000000 x14: 0000000000000000
      [   48.018572] x13: ffff7e000ef83a00 x12: 0000000000000001
      [   48.023870] x11: ffff000010eff998 x10: 00000000000019a0
      [   48.029169] x9 : 0000000000000000 x8 : ffff8003e6245180
      [   48.034467] x7 : 0000000000000000 x6 : 000000000000003f
      [   48.039766] x5 : 0000000000000040 x4 : ffff8003e0145080
      [   48.045064] x3 : dead000000000200 x2 : 0000000000000000
      [   48.050362] x1 : 0000000000000000 x0 : ffff8003e62450c0
      [   48.055660] Call trace:
      [   48.058095]  __list_del_entry_valid+0x2c/0xa8
      [   48.062442]  ccp_tx_submit+0x84/0x168 [ccp]
      [   48.066615]  async_tx_submit+0x224/0x368 [async_tx]
      [   48.071480]  async_trigger_callback+0x68/0xfc [async_tx]
      [   48.076784]  ops_run_biofill+0x178/0x1e8 [raid456]
      [   48.081566]  raid_run_ops+0x248/0x818 [raid456]
      [   48.086086]  handle_stripe+0x864/0x1208 [raid456]
      [   48.090781]  handle_active_stripes.isra.0+0xb0/0x278 [raid456]
      [   48.096604]  raid5d+0x378/0x618 [raid456]
      [   48.100602]  md_thread+0xa0/0x150
      [   48.103905]  kthread+0x104/0x130
      [   48.107122]  ret_from_fork+0x10/0x18
      [   48.110686] Code: d2804003 f2fbd5a3 eb03003f 54000320 (f9400021)
      [   48.116766] ---[ end trace 23f390a527f7ad77 ]---
      
      ccp_tx_submit is passed a dma_async_tx_descriptor which is contained in
      a ccp_dma_desc and adds it to a ccp channel's pending list:
      
      	list_del(&desc->entry);
      	list_add_tail(&desc->entry, &chan->pending);
      
      The problem is that desc->entry may be uninitialized in the
      async_trigger_callback path where the descriptor was gotten
      from ccp_prep_dma_interrupt which got it from ccp_alloc_dma_desc
      which doesn't initialize the desc->entry list head. So, just
      initialize the list head to avoid the problem.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarSahaj Sarup <sahajsarup@gmail.com>
      Signed-off-by: default avatarMark Salter <msalter@redhat.com>
      Acked-by: default avatarGary R Hook <gary.hook@amd.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      691505a8
    • Geert Uytterhoeven's avatar
      crypto: nx - Improve debugfs_create_u{32,64}() handling for atomics · fe95938d
      Geert Uytterhoeven authored
      Variables of type atomic{,64}_t can be used fine with
      debugfs_create_u{32,64}, when passing a pointer to the embedded counter.
      This allows to get rid of the casts, which prevented compiler checks.
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      fe95938d
    • Hook, Gary's avatar
      crypto: ccp - Verify access to device registers before initializing · 03f008c5
      Hook, Gary authored
      Check early whether device registers can be accessed. Some BIOSes have
      a broken security policy that prevents access to the device registers,
      and return values from ioread() can be misinterpreted. If a read of
      a feature register returns a -1, we may not be able to access
      any device register, so report the problem and suggestion, and return.
      
      For the PSP, the feature register is checked. For the CCP, the queue
      register is checked.
      Signed-off-by: default avatarGary R Hook <gary.hook@amd.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      03f008c5
    • Hook, Gary's avatar
      crypto: ccp - Change a message to reflect status instead of failure · 0d3c6781
      Hook, Gary authored
      If an AMD BIOS makes zero CCP queues available to the driver, the
      device is unavailable and therefore can't be activated. When this
      happens, report the status but don't report a (non-existent)
      failure. The CCP will be unactivated.
      Signed-off-by: default avatarGary R Hook <gary.hook@amd.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      0d3c6781
    • Shukun Tan's avatar
      crypto: hisilicon - fix endianness verification problem of QM · 9a8641a7
      Shukun Tan authored
      This patch fixes following sparse warning:
      
      qm.c:345:33: warning: cast removes address space '<asn:2>' of expression
      qm.c:359:20: warning: incorrect type in assignment (different base types)
      qm.c:359:20:    expected restricted __le16 [usertype] w0
      qm.c:359:20:    got int
      qm.c:362:27: warning: incorrect type in assignment (different base types)
      qm.c:362:27:    expected restricted __le16 [usertype] queue_num
      qm.c:362:27:    got unsigned short [usertype] queue
      qm.c:363:24: warning: incorrect type in assignment (different base types)
      qm.c:363:24:    expected restricted __le32 [usertype] base_l
      qm.c:363:24:    got unsigned int [usertype]
      qm.c:364:24: warning: incorrect type in assignment (different base types)
      qm.c:364:24:    expected restricted __le32 [usertype] base_h
      qm.c:364:24:    got unsigned int [usertype]
      qm.c:451:22: warning: restricted __le32 degrades to integer
      qm.c:471:24: warning: restricted __le16 degrades to integer
      ......
      qm.c:1617:19: warning: incorrect type in assignment (different base types)
      qm.c:1617:19:    expected restricted __le32 [usertype] dw6
      qm.c:1617:19:    got int
      qm.c:1891:24: warning: incorrect type in return expression (different base types)
      qm.c:1891:24:    expected int
      qm.c:1891:24:    got restricted pci_ers_result_t
      qm.c:1894:40: warning: incorrect type in return expression (different base types)
      qm.c:1894:40:    expected int
      qm.c:1894:40:    got restricted pci_ers_result_t
      Signed-off-by: default avatarShukun Tan <tanshukun1@huawei.com>
      Signed-off-by: default avatarZhou Wang <wangzhou1@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9a8641a7
    • Shukun Tan's avatar
      crypto: hisilicon - fix param should be static when not external. · 719181f3
      Shukun Tan authored
      This patch fixes following sparse warning:
      zip_main.c:87:1: warning: symbol 'hisi_zip_list' was not declared.
      Should it be static?
      zip_main.c:88:1: warning: symbol 'hisi_zip_list_lock' was not declared.
      Should it be static?
      zip_main.c:948:68: warning: Using plain integer as NULL pointer
      Signed-off-by: default avatarShukun Tan <tanshukun1@huawei.com>
      Signed-off-by: default avatarZhou Wang <wangzhou1@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      719181f3
    • Shukun Tan's avatar
      crypto: hisilicon - Fix using plain integer as NULL pointer · e1096698
      Shukun Tan authored
      This patch fix sparse warning:
      zip_crypto.c:425:26: warning: Using plain integer as NULL pointer
      
      Replaces assignment of 0 to pointer with NULL assignment.
      Signed-off-by: default avatarShukun Tan <tanshukun1@huawei.com>
      Signed-off-by: default avatarZhou Wang <wangzhou1@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      e1096698
    • Zhou Wang's avatar
      crypto: hisilicon - tiny fix about QM/ZIP error callback print · ee1788c6
      Zhou Wang authored
      Tiny fix to make QM/ZIP error callback print clear and right. If one version
      hardware does not support error handling, we directly print this.
      
      And QM is embedded in ZIP, we can use ZIP print only, so remove unnecessary
      QM print.
      Signed-off-by: default avatarZhou Wang <wangzhou1@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      ee1788c6
    • Tian Tao's avatar
      crypto: ccree - fix comparison of unsigned expression warning · 798ac398
      Tian Tao authored
      This patch fixes the following warnings:
      drivers/crypto/ccree/cc_aead.c:630:5-12: WARNING: Unsigned expression
      compared with zero: seq_len > 0
      Signed-off-by: default avatarTian Tao <tiantao6@huawei.com>
      
      v2:
      change hmac_setkey() return type to unsigned int to fix the warning.
      Acked-by: default avatarGilad Ben-Yossef <gilad@benyossef.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      798ac398
    • Ashish Kalra's avatar
      crypto: ccp - Retry SEV INIT command in case of integrity check failure. · 1d55fdc8
      Ashish Kalra authored
      SEV INIT command loads the SEV related persistent data from NVS
      and initializes the platform context. The firmware validates the
      persistent state. If validation fails, the firmware will reset
      the persisent state and return an integrity check failure status.
      
      At this point, a subsequent INIT command should succeed, so retry
      the command. The INIT command retry is only done during driver
      initialization.
      
      Additional enums along with SEV_RET_SECURE_DATA_INVALID are added
      to sev_ret_code to maintain continuity and relevance of enum values.
      Signed-off-by: default avatarAshish Kalra <ashish.kalra@amd.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Reviewed-by: default avatarBrijesh Singh <brijesh.singh@amd.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      1d55fdc8
    • Corentin Labbe's avatar
      crypto: amlogic - Add crypto accelerator for amlogic GXL · 48fe583f
      Corentin Labbe authored
      This patch adds support for the amlogic GXL cryptographic offloader present
      on GXL SoCs.
      
      This driver supports AES cipher in CBC/ECB mode.
      Signed-off-by: default avatarCorentin Labbe <clabbe@baylibre.com>
      Reviewed-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      48fe583f
    • Corentin Labbe's avatar
      MAINTAINERS: Add myself as maintainer of amlogic crypto · f1fb7ea2
      Corentin Labbe authored
      I will maintain the amlogic crypto driver.
      Signed-off-by: default avatarCorentin Labbe <clabbe@baylibre.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      f1fb7ea2
    • Corentin Labbe's avatar
      dt-bindings: crypto: Add DT bindings documentation for amlogic-crypto · 7f7d115d
      Corentin Labbe authored
      This patch adds documentation for Device-Tree bindings for the
      Amlogic GXL cryptographic offloader driver.
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarCorentin Labbe <clabbe@baylibre.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      7f7d115d
    • Ben Dooks (Codethink)'s avatar
      crypto: atmel - fix data types for __be{32,64} · 49c4cd80
      Ben Dooks (Codethink) authored
      The driver uses a couple of buffers that seem to
      be __be32 or __be64 fields, but declares them as
      u32. This means there are a number of warnings
      from sparse due to casting to/from __beXXX.
      
      Fix these by changing the types of the buffer
      and the associated variables.
      
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1023:15: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1059:28: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1059:28:    expected unsigned int
      drivers/crypto/atmel-aes.c:1059:28:    got restricted __be32 [usertype]
      drivers/crypto/atmel-aes.c:1550:28: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1550:28:    expected unsigned int
      drivers/crypto/atmel-aes.c:1550:28:    got restricted __be32 [usertype]
      drivers/crypto/atmel-aes.c:1561:39: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1561:39:    expected unsigned long long [usertype]
      drivers/crypto/atmel-aes.c:1561:39:    got restricted __be64 [usertype]
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:17: warning: cast to restricted __be32
      drivers/crypto/atmel-aes.c:1599:15: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1599:15:    expected unsigned int [usertype]
      drivers/crypto/atmel-aes.c:1599:15:    got restricted __be32 [usertype]
      drivers/crypto/atmel-aes.c:1692:17: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1692:17:    expected unsigned long long [usertype]
      drivers/crypto/atmel-aes.c:1692:17:    got restricted __be64 [usertype]
      drivers/crypto/atmel-aes.c:1693:17: warning: incorrect type in assignment (different base types)
      drivers/crypto/atmel-aes.c:1693:17:    expected unsigned long long [usertype]
      drivers/crypto/atmel-aes.c:1693:17:    got restricted __be64 [usertype]
      drivers/crypto/atmel-aes.c:1888:63: warning: incorrect type in initializer (different base types)
      drivers/crypto/atmel-aes.c:1888:63:    expected unsigned int
      drivers/crypto/atmel-aes.c:1888:63:    got restricted __le32 [usertype]
      Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      49c4cd80
    • YueHaibing's avatar
      hwrng: xgene - use devm_platform_ioremap_resource() to simplify code · 4c747d4d
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      4c747d4d
    • YueHaibing's avatar
      hwrng: tx4939 - use devm_platform_ioremap_resource() to simplify code · 6cd4e070
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      6cd4e070
    • YueHaibing's avatar
      hwrng: st - use devm_platform_ioremap_resource() to simplify code · bd74b0f5
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Reviewed-by: default avatarPatrice Chotard <patrice.chotard@st.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      bd74b0f5
    • YueHaibing's avatar
      hwrng: pic32 - use devm_platform_ioremap_resource() to simplify code · 64b7bf13
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      64b7bf13
    • YueHaibing's avatar
      hwrng: pasemi - use devm_platform_ioremap_resource() to simplify code · 5b18f9ac
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      5b18f9ac
    • YueHaibing's avatar
      hwrng: omap - use devm_platform_ioremap_resource() to simplify code · c7c16c58
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c7c16c58
    • YueHaibing's avatar
      hwrng: npcm - use devm_platform_ioremap_resource() to simplify code · fc963e02
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      fc963e02
    • YueHaibing's avatar
      hwrng: meson - use devm_platform_ioremap_resource() to simplify code · ba147576
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Reviewed-by: default avatarKevin Hilman <khilman@baylibre.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      ba147576
    • YueHaibing's avatar
      hwrng: ks-sa - use devm_platform_ioremap_resource() to simplify code · 871d030d
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      871d030d
    • YueHaibing's avatar
      hwrng: hisi - use devm_platform_ioremap_resource() to simplify code · 10304c76
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      10304c76
    • YueHaibing's avatar
      hwrng: exynos - use devm_platform_ioremap_resource() to simplify code · 3e3c97c6
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Acked-by: default avatarŁukasz Stelmach <l.stelmach@samsung.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      3e3c97c6
    • YueHaibing's avatar
      hwrng: bcm2835 - use devm_platform_ioremap_resource() to simplify code · 3e46bd34
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      3e46bd34
    • YueHaibing's avatar
      hwrng: atmel - use devm_platform_ioremap_resource() to simplify code · bc49534d
      YueHaibing authored
      Use devm_platform_ioremap_resource() to simplify the code a bit.
      This is detected by coccinelle.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Acked-by: default avatarLudovic Desroches <ludovic.desroches@microchip.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      bc49534d
    • Ben Dooks's avatar
      hwrng: ka-sa - fix __iomem on registers · d1569349
      Ben Dooks authored
      Add __ioemm attribute to reg_rng to fix the following
      sparse warnings:
      
      drivers/char/hw_random/ks-sa-rng.c:102:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:102:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:102:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:104:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:104:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:104:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:113:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:113:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:113:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:116:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:116:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:116:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:119:17: warning: incorrect type in argument 1 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:119:17:    expected void const volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:119:17:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:121:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:121:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:121:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:132:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:132:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:132:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:143:19: warning: incorrect type in argument 1 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:143:19:    expected void const volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:143:19:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:144:19: warning: incorrect type in argument 1 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:144:19:    expected void const volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:144:19:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:146:9: warning: incorrect type in argument 2 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:146:9:    expected void volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:146:9:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:160:25: warning: incorrect type in argument 1 (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:160:25:    expected void const volatile [noderef] <asn:2> *addr
      drivers/char/hw_random/ks-sa-rng.c:160:25:    got unsigned int *
      drivers/char/hw_random/ks-sa-rng.c:194:28: warning: incorrect type in assignment (different address spaces)
      drivers/char/hw_random/ks-sa-rng.c:194:28:    expected struct trng_regs *reg_rng
      drivers/char/hw_random/ks-sa-rng.c:194:28:    got void [noderef] <asn:2> *
      Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      d1569349
    • Ard Biesheuvel's avatar
      crypto: powerpc/spe-xts - implement support for ciphertext stealing · d0be0720
      Ard Biesheuvel authored
      Add the logic to deal with input sizes that are not a round multiple
      of the AES block size, as described by the XTS spec. This brings the
      SPE implementation in line with other kernel drivers that have been
      updated recently to take this into account.
      
      Cc: Eric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      d0be0720
    • Eric Biggers's avatar
      crypto: powerpc - convert SPE AES algorithms to skcipher API · 7f725f41
      Eric Biggers authored
      Convert the glue code for the PowerPC SPE implementations of AES-ECB,
      AES-CBC, AES-CTR, and AES-XTS from the deprecated "blkcipher" API to the
      "skcipher" API.  This is needed in order for the blkcipher API to be
      removed.
      
      Tested with:
      
      	export ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
      	make mpc85xx_defconfig
      	cat >> .config << EOF
      	# CONFIG_MODULES is not set
      	# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
      	CONFIG_DEBUG_KERNEL=y
      	CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y
      	CONFIG_CRYPTO_AES=y
      	CONFIG_CRYPTO_CBC=y
      	CONFIG_CRYPTO_CTR=y
      	CONFIG_CRYPTO_ECB=y
      	CONFIG_CRYPTO_XTS=y
      	CONFIG_CRYPTO_AES_PPC_SPE=y
      	EOF
      	make olddefconfig
      	make -j32
      	qemu-system-ppc -M mpc8544ds -cpu e500 -nographic \
      		-kernel arch/powerpc/boot/zImage \
      		-append cryptomgr.fuzz_iterations=1000
      
      Note that xts-ppc-spe still fails the comparison tests due to the lack
      of ciphertext stealing support.  This is not addressed by this patch.
      
      This patch also cleans up the code by making ->encrypt() and ->decrypt()
      call a common function for each of ECB, CBC, and XTS, and by using a
      clearer way to compute the length to process at each step.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      7f725f41
    • Eric Biggers's avatar
      crypto: powerpc - don't set ivsize for AES-ECB · 8255e65d
      Eric Biggers authored
      Set the ivsize for the "ecb-ppc-spe" algorithm to 0, since ECB mode
      doesn't take an IV.
      
      This fixes a failure in the extra crypto self-tests:
      
      	alg: skcipher: ivsize for ecb-ppc-spe (16) doesn't match generic impl (0)
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      8255e65d
    • Eric Biggers's avatar
      crypto: powerpc - don't unnecessarily use atomic scatterwalk · 0d6ecb2e
      Eric Biggers authored
      The PowerPC SPE implementations of AES modes only disable preemption
      during the actual encryption/decryption, not during the scatterwalk
      functions.  It's therefore unnecessary to request an atomic scatterwalk.
      So don't do so.
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      0d6ecb2e
    • Ard Biesheuvel's avatar
      crypto: aegis128 - duplicate init() and final() hooks in SIMD code · 52828263
      Ard Biesheuvel authored
      In order to speed up aegis128 processing even more, duplicate the init()
      and final() routines as SIMD versions in their entirety. This results
      in a 2x speedup on ARM Cortex-A57 for ~1500 byte packets (using AES
      instructions).
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      52828263