1. 16 3月, 2018 9 次提交
  2. 09 3月, 2018 23 次提交
  3. 03 3月, 2018 8 次提交
    • B
      include: psp-sev: Capitalize invalid length enum · 23ea8b63
      Brijesh Singh 提交于
      Commit 1d57b17c ("crypto: ccp: Define SEV userspace ioctl and command
      id") added the invalid length enum but we missed capitalizing it.
      
      Fixes: 1d57b17c (crypto: ccp: Define SEV userspace ioctl ...)
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      CC: Gary R Hook <gary.hook@amd.com>
      Signed-off-by: NBrijesh Singh <brijesh.singh@amd.com>
      Acked-by: NGary R Hook <gary.hook@amd.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      23ea8b63
    • B
      crypto: ccp - Fix sparse, use plain integer as NULL pointer · e385b5b7
      Brijesh Singh 提交于
      Fix sparse warning: Using plain integer as NULL pointer. Replaces
      assignment of 0 to pointer with NULL assignment.
      
      Fixes: 200664d5 (Add Secure Encrypted Virtualization ...)
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Gary Hook <gary.hook@amd.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NBrijesh Singh <brijesh.singh@amd.com>
      Acked-by: NGary R Hook <gary.hook@amd.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      e385b5b7
    • M
      crypto: ccp - return an actual key size from RSA max_size callback · 0a9eb80e
      Maciej S. Szmigiero 提交于
      rsa-pkcs1pad uses a value returned from a RSA implementation max_size
      callback as a size of an input buffer passed to the RSA implementation for
      encrypt and sign operations.
      
      CCP RSA implementation uses a hardware input buffer which size depends only
      on the current RSA key length, so it should return this key length in
      the max_size callback, too.
      This also matches what the kernel software RSA implementation does.
      
      Previously, the value returned from this callback was always the maximum
      RSA key size the CCP hardware supports.
      This resulted in this huge buffer being passed by rsa-pkcs1pad to CCP even
      for smaller key sizes and then in a buffer overflow when ccp_run_rsa_cmd()
      tried to copy this large input buffer into a RSA key length-sized hardware
      input buffer.
      Signed-off-by: NMaciej S. Szmigiero <mail@maciej.szmigiero.name>
      Fixes: ceeec0af ("crypto: ccp - Add support for RSA on the CCP")
      Cc: stable@vger.kernel.org
      Acked-by: NGary R Hook <gary.hook@amd.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      0a9eb80e
    • S
      crypto: ccp - don't disable interrupts while setting up debugfs · 79eb382b
      Sebastian Andrzej Siewior 提交于
      I don't why we need take a single write lock and disable interrupts
      while setting up debugfs. This is what what happens when we try anyway:
      
      |ccp 0000:03:00.2: enabling device (0000 -> 0002)
      |BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:69
      |in_atomic(): 1, irqs_disabled(): 1, pid: 3, name: kworker/0:0
      |irq event stamp: 17150
      |hardirqs last  enabled at (17149): [<0000000097a18c49>] restore_regs_and_return_to_kernel+0x0/0x23
      |hardirqs last disabled at (17150): [<000000000773b3a9>] _raw_write_lock_irqsave+0x1b/0x50
      |softirqs last  enabled at (17148): [<0000000064d56155>] __do_softirq+0x3b8/0x4c1
      |softirqs last disabled at (17125): [<0000000092633c18>] irq_exit+0xb1/0xc0
      |CPU: 0 PID: 3 Comm: kworker/0:0 Not tainted 4.16.0-rc2+ #30
      |Workqueue: events work_for_cpu_fn
      |Call Trace:
      | dump_stack+0x7d/0xb6
      | ___might_sleep+0x1eb/0x250
      | down_write+0x17/0x60
      | start_creating+0x4c/0xe0
      | debugfs_create_dir+0x9/0x100
      | ccp5_debugfs_setup+0x191/0x1b0
      | ccp5_init+0x8a7/0x8c0
      | ccp_dev_init+0xb8/0xe0
      | sp_init+0x6c/0x90
      | sp_pci_probe+0x26e/0x590
      | local_pci_probe+0x3f/0x90
      | work_for_cpu_fn+0x11/0x20
      | process_one_work+0x1ff/0x650
      | worker_thread+0x1d4/0x3a0
      | kthread+0xfe/0x130
      | ret_from_fork+0x27/0x50
      
      If any locking is required, a simple mutex will do it.
      
      Cc: Gary R Hook <gary.hook@amd.com>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Acked-by: NGary R Hook <gary.hook@amd.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      79eb382b
    • A
      crypto: atmel-aes - fix the keys zeroing on errors · 5d804a51
      Antoine Tenart 提交于
      The Atmel AES driver uses memzero_explicit on the keys on error, but the
      variable zeroed isn't the right one because of a typo. Fix this by using
      the right variable.
      
      Fixes: 89a82ef8 ("crypto: atmel-authenc - add support to authenc(hmac(shaX), Y(aes)) modes")
      Signed-off-by: NAntoine Tenart <antoine.tenart@bootlin.com>
      Reviewed-by: NTudor Ambarus <tudor.ambarus@microchip.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      5d804a51
    • R
      crypto: caam - do not use mem and emi_slow clock for imx7x · 699e491b
      Rui Miguel Silva 提交于
      I.MX7x only use two clocks for the CAAM module, so make sure we do not try to
      use the mem and the emi_slow clock when running in that imx7d and imx7s machine
      type.
      
      Cc: "Horia Geantă" <horia.geanta@nxp.com>
      Cc: Aymen Sghaier <aymen.sghaier@nxp.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Peng Fan <peng.fan@nxp.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
      Signed-off-by: NRui Miguel Silva <rui.silva@linaro.org>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      699e491b
    • R
      crypto: caam - Fix null dereference at error path · b85149f6
      Rui Miguel Silva 提交于
      caam_remove already removes the debugfs entry, so we need to remove the one
      immediately before calling caam_remove.
      
      This fix a NULL dereference at error paths is caam_probe fail.
      
      Fixes: 67c2315d ("crypto: caam - add Queue Interface (QI) backend support")
      Tested-by: NRyan Harkin <ryan.harkin@linaro.org>
      Cc: "Horia Geantă" <horia.geanta@nxp.com>
      Cc: Aymen Sghaier <aymen.sghaier@nxp.com>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Peng Fan <peng.fan@nxp.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
      Cc: <stable@vger.kernel.org> # 4.12+
      Reviewed-by: NHoria Geantă <horia.geanta@nxp.com>
      Signed-off-by: NRui Miguel Silva <rui.silva@linaro.org>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      b85149f6
    • B
      crypto: ccp - add check to get PSP master only when PSP is detected · 716c7c32
      Brijesh Singh 提交于
      Paulian reported the below kernel crash on Ryzen 5 system:
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000073
      RIP: 0010:.LC0+0x41f/0xa00
      RSP: 0018:ffffa9968003bdd0 EFLAGS: 00010002
      RAX: ffffffffb113b130 RBX: 0000000000000000 RCX: 00000000000005a7
      RDX: 00000000000000ff RSI: ffff8b46dee651a0 RDI: ffffffffb1bd617c
      RBP: 0000000000000246 R08: 00000000000251a0 R09: 0000000000000000
      R10: ffffd81f11a38200 R11: ffff8b52e8e0a161 R12: ffffffffb19db220
      R13: 0000000000000007 R14: ffffffffb17e4888 R15: 5dccd7affc30a31e
      FS:  0000000000000000(0000) GS:ffff8b46dee40000(0000) knlGS:0000000000000000
      CR2: 0000000000000073 CR3: 000080128120a000 CR4: 00000000003406e0
      Call Trace:
       ? sp_get_psp_master_device+0x56/0x80
       ? map_properties+0x540/0x540
       ? psp_pci_init+0x20/0xe0
       ? map_properties+0x540/0x540
       ? sp_mod_init+0x16/0x1a
       ? do_one_initcall+0x4b/0x190
       ? kernel_init_freeable+0x19b/0x23c
       ? rest_init+0xb0/0xb0
       ? kernel_init+0xa/0x100
       ? ret_from_fork+0x22/0x40
      
      Since Ryzen does not support PSP/SEV firmware hence i->psp_data will
      NULL in all sp instances. In those cases, 'i' will point to the
      list head after list_for_each_entry(). Dereferencing the head will
      cause kernel crash.
      
      Add check to call get master device only when PSP/SEV is detected.
      Reported-by: NPaulian Bogdan Marinca <paulian@marinca.net>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      CC: Gary R Hook <gary.hook@amd.com>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NBrijesh Singh <brijesh.singh@amd.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      716c7c32