diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0034-crypto-ccp-add-check-to-get-PSP-master-only-when-PSP.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0034-crypto-ccp-add-check-to-get-PSP-master-only-when-PSP.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0034-crypto-ccp-add-check-to-get-PSP-master-only-when-PSP.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0034-crypto-ccp-add-check-to-get-PSP-master-only-when-PSP.patch deleted file mode 100644 index bdb37f1c..00000000 --- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0034-crypto-ccp-add-check-to-get-PSP-master-only-when-PSP.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 45bca3e63fe71fb04abfbf0d6a1416f79e0acf01 Mon Sep 17 00:00:00 2001 -From: Brijesh Singh <brijesh.singh@amd.com> -Date: Wed, 21 Feb 2018 08:41:39 -0600 -Subject: [PATCH 34/95] crypto: ccp - add check to get PSP master only when PSP - is detected - -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: Paulian 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: Brijesh Singh <brijesh.singh@amd.com> -Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> -Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com> ---- - drivers/crypto/ccp/sp-dev.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/crypto/ccp/sp-dev.c b/drivers/crypto/ccp/sp-dev.c -index eb0da65..e045900 100644 ---- a/drivers/crypto/ccp/sp-dev.c -+++ b/drivers/crypto/ccp/sp-dev.c -@@ -252,12 +252,12 @@ struct sp_device *sp_get_psp_master_device(void) - goto unlock; - - list_for_each_entry(i, &sp_units, entry) { -- if (i->psp_data) -+ if (i->psp_data && i->get_psp_master_device) { -+ ret = i->get_psp_master_device(); - break; -+ } - } - -- if (i->get_psp_master_device) -- ret = i->get_psp_master_device(); - unlock: - write_unlock_irqrestore(&sp_unit_lock, flags); - return ret; --- -2.7.4 - |