kernel-6.2.2-301
* Tue Mar 07 2023 Justin M. Forbes <jforbes@fedoraproject.org> [6.2.2-1] - Bump for rebuild (Justin M. Forbes) - iommu/amd: Do not identity map v2 capable device when snp is enabled (Vasant Hegde) - iommu: Attach device group to old domain in error path (Vasant Hegde) - iommu/amd: Improve page fault error reporting (Vasant Hegde) - iommu/amd: Skip attach device domain is same as new domain (Vasant Hegde) - iommu/amd: Fix error handling for pdev_pri_ats_enable() (Vasant Hegde) - redhat/kernel.spec.template: Fix RHEL systemd-boot-unsigned dependency (Prarit Bhargava) Resolves: Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
786690a926
commit
a30ca910db
|
@ -12,7 +12,7 @@ RHEL_MINOR = 99
|
|||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 0
|
||||
RHEL_RELEASE = 1
|
||||
|
||||
#
|
||||
# ZSTREAM
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/a95fa0b4dd6a8a8aa27d72c95cd8fc522f420996
|
||||
a95fa0b4dd6a8a8aa27d72c95cd8fc522f420996 iommu/amd: Do not identity map v2 capable device when snp is enabled
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/50c9147bec083a83e10799bb127c4e730c24ba11
|
||||
50c9147bec083a83e10799bb127c4e730c24ba11 iommu: Attach device group to old domain in error path
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/3a4e60e72603ce11dd24f8dec42c0e4c4339b1b7
|
||||
3a4e60e72603ce11dd24f8dec42c0e4c4339b1b7 iommu/amd: Improve page fault error reporting
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/70ec5b043f0debccfae70b702f7741a9e07ef42e
|
||||
70ec5b043f0debccfae70b702f7741a9e07ef42e iommu/amd: Skip attach device domain is same as new domain
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/42eaef1e4db25a79c5f24219373de3fff6591a6a
|
||||
42eaef1e4db25a79c5f24219373de3fff6591a6a iommu/amd: Fix error handling for pdev_pri_ats_enable()
|
||||
|
||||
"https://gitlab.com/cki-project/kernel-ark/-/commit"/807d6b912b28183332ea9e78afaf9bc2f47559dd
|
||||
807d6b912b28183332ea9e78afaf9bc2f47559dd drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set
|
||||
|
||||
|
|
14
kernel.spec
14
kernel.spec
|
@ -147,13 +147,13 @@ Summary: The Linux kernel
|
|||
# define buildid .local
|
||||
%define specversion 6.2.2
|
||||
%define patchversion 6.2
|
||||
%define pkgrelease 300
|
||||
%define pkgrelease 301
|
||||
%define kversion 6
|
||||
%define tarfile_release 6.2.2
|
||||
# This is needed to do merge window version magic
|
||||
%define patchlevel 2
|
||||
# This allows pkg_release to have configurable %%{?dist} tag
|
||||
%define specrelease 300%{?buildid}%{?dist}
|
||||
%define specrelease 301%{?buildid}%{?dist}
|
||||
# This defines the kabi tarball version
|
||||
%define kabiversion 6.2.2
|
||||
|
||||
|
@ -732,7 +732,7 @@ BuildRequires: lvm2
|
|||
BuildRequires: systemd-boot-unsigned
|
||||
%endif
|
||||
# For systemd-stub and systemd-pcrphase
|
||||
BuildRequires: systemd-udev
|
||||
BuildRequires: systemd-udev >= 252-1
|
||||
# For TPM operations in UKI initramfs
|
||||
BuildRequires: tpm2-tools
|
||||
%endif
|
||||
|
@ -3347,7 +3347,13 @@ fi
|
|||
#
|
||||
#
|
||||
%changelog
|
||||
* Fri Mar 03 2023 Justin M. Forbes <jforbes@fedoraproject.org> [6.2.2-300]
|
||||
* Tue Mar 07 2023 Justin M. Forbes <jforbes@fedoraproject.org> [6.2.2-1]
|
||||
- Bump for rebuild (Justin M. Forbes)
|
||||
- iommu/amd: Do not identity map v2 capable device when snp is enabled (Vasant Hegde)
|
||||
- iommu: Attach device group to old domain in error path (Vasant Hegde)
|
||||
- iommu/amd: Improve page fault error reporting (Vasant Hegde)
|
||||
- iommu/amd: Skip attach device domain is same as new domain (Vasant Hegde)
|
||||
- iommu/amd: Fix error handling for pdev_pri_ats_enable() (Vasant Hegde)
|
||||
- redhat/kernel.spec.template: Fix RHEL systemd-boot-unsigned dependency (Prarit Bhargava)
|
||||
|
||||
* Fri Mar 03 2023 Justin M. Forbes <jforbes@fedoraproject.org> [6.2.2-0]
|
||||
|
|
|
@ -18,7 +18,8 @@
|
|||
drivers/hid/hid-rmi.c | 66 ---
|
||||
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +
|
||||
drivers/input/rmi4/rmi_driver.c | 124 +++--
|
||||
drivers/iommu/iommu.c | 22 +
|
||||
drivers/iommu/amd/iommu.c | 41 +-
|
||||
drivers/iommu/iommu.c | 38 +-
|
||||
drivers/pci/quirks.c | 24 +
|
||||
drivers/usb/core/hub.c | 7 +
|
||||
include/linux/efi.h | 22 +-
|
||||
|
@ -33,7 +34,7 @@
|
|||
security/lockdown/Kconfig | 13 +
|
||||
security/lockdown/lockdown.c | 1 +
|
||||
security/security.c | 6 +
|
||||
35 files changed, 980 insertions(+), 177 deletions(-)
|
||||
36 files changed, 1027 insertions(+), 187 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 1836ddaf2c94..eb1d58681256 100644
|
||||
|
@ -935,8 +936,99 @@ index 258d5fe3d395..f7298e3dc8f3 100644
|
|||
|
||||
if (data->f01_container->dev.driver) {
|
||||
/* Driver already bound, so enable ATTN now. */
|
||||
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
|
||||
index cbeaab55c0db..ff4f3d4da340 100644
|
||||
--- a/drivers/iommu/amd/iommu.c
|
||||
+++ b/drivers/iommu/amd/iommu.c
|
||||
@@ -558,6 +558,15 @@ static void amd_iommu_report_page_fault(struct amd_iommu *iommu,
|
||||
* prevent logging it.
|
||||
*/
|
||||
if (IS_IOMMU_MEM_TRANSACTION(flags)) {
|
||||
+ /* Device not attached to domain properly */
|
||||
+ if (dev_data->domain == NULL) {
|
||||
+ pr_err_ratelimited("Event logged [Device not attached to domain properly]\n");
|
||||
+ pr_err_ratelimited(" device=%04x:%02x:%02x.%x domain=0x%04x\n",
|
||||
+ iommu->pci_seg->id, PCI_BUS_NUM(devid), PCI_SLOT(devid),
|
||||
+ PCI_FUNC(devid), domain_id);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
if (!report_iommu_fault(&dev_data->domain->domain,
|
||||
&pdev->dev, address,
|
||||
IS_WRITE_REQUEST(flags) ?
|
||||
@@ -1702,27 +1711,29 @@ static int pdev_pri_ats_enable(struct pci_dev *pdev)
|
||||
/* Only allow access to user-accessible pages */
|
||||
ret = pci_enable_pasid(pdev, 0);
|
||||
if (ret)
|
||||
- goto out_err;
|
||||
+ return ret;
|
||||
|
||||
/* First reset the PRI state of the device */
|
||||
ret = pci_reset_pri(pdev);
|
||||
if (ret)
|
||||
- goto out_err;
|
||||
+ goto out_err_pasid;
|
||||
|
||||
/* Enable PRI */
|
||||
/* FIXME: Hardcode number of outstanding requests for now */
|
||||
ret = pci_enable_pri(pdev, 32);
|
||||
if (ret)
|
||||
- goto out_err;
|
||||
+ goto out_err_pasid;
|
||||
|
||||
ret = pci_enable_ats(pdev, PAGE_SHIFT);
|
||||
if (ret)
|
||||
- goto out_err;
|
||||
+ goto out_err_pri;
|
||||
|
||||
return 0;
|
||||
|
||||
-out_err:
|
||||
+out_err_pri:
|
||||
pci_disable_pri(pdev);
|
||||
+
|
||||
+out_err_pasid:
|
||||
pci_disable_pasid(pdev);
|
||||
|
||||
return ret;
|
||||
@@ -2159,6 +2170,13 @@ static int amd_iommu_attach_device(struct iommu_domain *dom,
|
||||
struct amd_iommu *iommu = rlookup_amd_iommu(dev);
|
||||
int ret;
|
||||
|
||||
+ /*
|
||||
+ * Skip attach device to domain if new domain is same as
|
||||
+ * devices current domain
|
||||
+ */
|
||||
+ if (dev_data->domain == domain)
|
||||
+ return 0;
|
||||
+
|
||||
dev_data->defer_attach = false;
|
||||
|
||||
if (dev_data->domain)
|
||||
@@ -2387,12 +2405,17 @@ static int amd_iommu_def_domain_type(struct device *dev)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
- * Do not identity map IOMMUv2 capable devices when memory encryption is
|
||||
- * active, because some of those devices (AMD GPUs) don't have the
|
||||
- * encryption bit in their DMA-mask and require remapping.
|
||||
+ * Do not identity map IOMMUv2 capable devices when:
|
||||
+ * - memory encryption is active, because some of those devices
|
||||
+ * (AMD GPUs) don't have the encryption bit in their DMA-mask
|
||||
+ * and require remapping.
|
||||
+ * - SNP is enabled, because it prohibits DTE[Mode]=0.
|
||||
*/
|
||||
- if (!cc_platform_has(CC_ATTR_MEM_ENCRYPT) && dev_data->iommu_v2)
|
||||
+ if (dev_data->iommu_v2 &&
|
||||
+ !cc_platform_has(CC_ATTR_MEM_ENCRYPT) &&
|
||||
+ !amd_iommu_snp_en) {
|
||||
return IOMMU_DOMAIN_IDENTITY;
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
|
||||
index 5f6a85aea501..3b1e9faa9c2d 100644
|
||||
index 5f6a85aea501..026487698b25 100644
|
||||
--- a/drivers/iommu/iommu.c
|
||||
+++ b/drivers/iommu/iommu.c
|
||||
@@ -8,6 +8,7 @@
|
||||
|
@ -947,7 +1039,31 @@ index 5f6a85aea501..3b1e9faa9c2d 100644
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/bug.h>
|
||||
@@ -2793,6 +2794,27 @@ int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
|
||||
@@ -2124,8 +2125,22 @@ static int __iommu_attach_group(struct iommu_domain *domain,
|
||||
|
||||
ret = __iommu_group_for_each_dev(group, domain,
|
||||
iommu_group_do_attach_device);
|
||||
- if (ret == 0)
|
||||
+ if (ret == 0) {
|
||||
group->domain = domain;
|
||||
+ } else {
|
||||
+ /*
|
||||
+ * To recover from the case when certain device within the
|
||||
+ * group fails to attach to the new domain, we need force
|
||||
+ * attaching all devices back to the old domain. The old
|
||||
+ * domain is compatible for all devices in the group,
|
||||
+ * hence the iommu driver should always return success.
|
||||
+ */
|
||||
+ struct iommu_domain *old_domain = group->domain;
|
||||
+
|
||||
+ group->domain = NULL;
|
||||
+ WARN(__iommu_group_set_domain(group, old_domain),
|
||||
+ "iommu driver failed to attach a compatible domain");
|
||||
+ }
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -2793,6 +2808,27 @@ int iommu_dev_disable_feature(struct device *dev, enum iommu_dev_features feat)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iommu_dev_disable_feature);
|
||||
|
||||
|
|
4
sources
4
sources
|
@ -1,3 +1,3 @@
|
|||
SHA512 (linux-6.2.2.tar.xz) = 155b0e21bde6f1cc6d410e588ca120cee6b4b056079e43d1b090a3e707859b5bf538ce2736d7cfc4f1455b9042a09ed5b1b37182e879264fed74c7913f253830
|
||||
SHA512 (kernel-abi-stablelists-6.2.2.tar.bz2) = e1e92d3807b2aefb7ac69b637ff9a9ceed9ed76e8eddbfc2a3035cb35a1fce81b64e7a3c44fe12df85f93861111c40cbb521fea53c70ca287224dfddc62d5d2b
|
||||
SHA512 (kernel-kabi-dw-6.2.2.tar.bz2) = d6b74c79ec7d45a7b27c47b888078fe4275e04f04b27970217828a884c48bb5f795435fa70a6b8b7dc802f1d94a80af272b53d122b892cda0ba1d803853f755a
|
||||
SHA512 (kernel-abi-stablelists-6.2.2.tar.bz2) = 3ad5cdf2251ad557ce536e230434d454813571147de7566d8838903c54c923caa55db73cb9ca0c9ae4338d8bb9b43a38732646d643c6cbeee3b830dbff1400a2
|
||||
SHA512 (kernel-kabi-dw-6.2.2.tar.bz2) = 9560700ab830ef3f65a7fe0b561b5323b8d8d88054d20436fc679e6b6e6d627f4c71a94161d0187925bb3a357d11b34441672e947da637cdd9dba4728f3c8764
|
||||
|
|
Loading…
Reference in New Issue