Home Home > GIT Browse > SLE12-SP5
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Kirjanov <dkirjanov@suse.com>2019-07-20 12:04:32 +0300
committerDenis Kirjanov <dkirjanov@suse.com>2019-07-20 12:04:32 +0300
commit59afa66a2f6ee2b78e5ca193b814e107ecb017c1 (patch)
treee059b1e395a01cc83d6f40920b104005028378bb
parent5638380fd3a2a1e8cfe18cf464e2477198599cb7 (diff)
parentdfd082ce39b049e1e6e76e672ede26f7bc64b82f (diff)
Merge remote-tracking branch 'origin/SLE12-SP4' into SLE12-SP5SLE12-SP5
Conflicts: series.conf
-rw-r--r--patches.drivers/iommu-vt-d-remove-unnecessary-rcu_read_locks5
-rw-r--r--patches.fixes/0001-crypto-ccp-fix-the-SEV-probe-in-kexec-boot-path.patch63
-rw-r--r--series.conf1
3 files changed, 66 insertions, 3 deletions
diff --git a/patches.drivers/iommu-vt-d-remove-unnecessary-rcu_read_locks b/patches.drivers/iommu-vt-d-remove-unnecessary-rcu_read_locks
index 1890998ceb..cd781aeee7 100644
--- a/patches.drivers/iommu-vt-d-remove-unnecessary-rcu_read_locks
+++ b/patches.drivers/iommu-vt-d-remove-unnecessary-rcu_read_locks
@@ -19,7 +19,7 @@ Fixes: d160aca5276d ("iommu/vt-d: Unify domain->iommu attach/detachment")
Signed-off-by: Lukasz Odzioba <lukasz.odzioba@intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
---
- drivers/iommu/intel-iommu.c | 4 ----
+ drivers/iommu/intel-iommu.c | 4 ----
1 file changed, 4 deletions(-)
--- a/drivers/iommu/intel-iommu.c
@@ -34,7 +34,7 @@ Signed-off-by: Joerg Roedel <jroedel@suse.de>
/* destroy iovas */
put_iova_domain(&domain->iovad);
-@@ -5121,9 +5119,7 @@ static int intel_iommu_attach_device(str
+@@ -4996,9 +4994,7 @@ static int intel_iommu_attach_device(str
old_domain = find_domain(dev);
if (old_domain) {
@@ -44,4 +44,3 @@ Signed-off-by: Joerg Roedel <jroedel@suse.de>
if (!domain_type_is_vm_or_si(old_domain) &&
list_empty(&old_domain->devices))
-
diff --git a/patches.fixes/0001-crypto-ccp-fix-the-SEV-probe-in-kexec-boot-path.patch b/patches.fixes/0001-crypto-ccp-fix-the-SEV-probe-in-kexec-boot-path.patch
new file mode 100644
index 0000000000..7d3b751265
--- /dev/null
+++ b/patches.fixes/0001-crypto-ccp-fix-the-SEV-probe-in-kexec-boot-path.patch
@@ -0,0 +1,63 @@
+From f8903b3ead5191d450f21c7388ddc245f76cec0f Mon Sep 17 00:00:00 2001
+From: "Singh, Brijesh" <brijesh.singh@amd.com>
+Date: Wed, 30 Jan 2019 20:57:52 +0000
+Subject: [PATCH] crypto: ccp - fix the SEV probe in kexec boot path
+Git-commit: f8903b3ead5191d450f21c7388ddc245f76cec0f
+Patch-mainline: v5.1-rc1
+References: bsc#1136896
+
+A kexec reboot may leave the firmware in INIT or WORKING state.
+Currently, we issue PLATFORM_INIT command during the probe without
+checking the current state. The PLATFORM_INIT command fails if the
+FW is already in INIT state. Lets check the current state, if FW
+is not in UNINIT state then transition it to UNINIT before
+initializing or upgrading the FW.
+
+Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
+Cc: Tom Lendacky <thomas.lendacky@amd.com>
+Cc: Gary Hook <gary.hook@amd.com>
+Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Michal Hocko <mhocko@suse.com>
+
+---
+ drivers/crypto/ccp/psp-dev.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c
+index 66566547feff..638f138debd7 100644
+--- a/drivers/crypto/ccp/psp-dev.c
++++ b/drivers/crypto/ccp/psp-dev.c
+@@ -437,6 +437,7 @@ static int sev_get_api_version(void)
+ psp_master->api_major = status->api_major;
+ psp_master->api_minor = status->api_minor;
+ psp_master->build = status->build;
++ psp_master->sev_state = status->state;
+
+ return 0;
+ }
+@@ -964,6 +965,21 @@ void psp_pci_init(void)
+ if (sev_get_api_version())
+ goto err;
+
++ /*
++ * If platform is not in UNINIT state then firmware upgrade and/or
++ * platform INIT command will fail. These command require UNINIT state.
++ *
++ * In a normal boot we should never run into case where the firmware
++ * is not in UNINIT state on boot. But in case of kexec boot, a reboot
++ * may not go through a typical shutdown sequence and may leave the
++ * firmware in INIT or WORKING state.
++ */
++
++ if (psp_master->sev_state != SEV_STATE_UNINIT) {
++ sev_platform_shutdown(NULL);
++ psp_master->sev_state = SEV_STATE_UNINIT;
++ }
++
+ if (SEV_VERSION_GREATER_OR_EQUAL(0, 15) &&
+ sev_update_firmware(psp_master->dev) == 0)
+ sev_get_api_version();
+--
+2.12.3
+
diff --git a/series.conf b/series.conf
index e700b0135b..b79a37f060 100644
--- a/series.conf
+++ b/series.conf
@@ -45552,6 +45552,7 @@
patches.fixes/crypto-arm64-aes-ccm-fix-bugs-in-non-NEON-fallback-r.patch
patches.fixes/crypto-arm-crct10dif-revert-to-C-code-for-short-inpu.patch
patches.fixes/crypto-arm64-crct10dif-revert-to-C-code-for-short-in.patch
+ patches.fixes/0001-crypto-ccp-fix-the-SEV-probe-in-kexec-boot-path.patch
patches.fixes/crypto-caam-fixed-handling-of-sg-list.patch
patches.fixes/crypto-ahash-fix-another-early-termination-in-hash-w.patch
patches.drivers/0001-crypto-qat-Remove-unused-goto-label.patch