]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Drop xen-add-capability-to-remap-non-ram-pages-to-differe.patch
authorSasha Levin <sashal@kernel.org>
Sun, 6 Oct 2024 08:06:51 +0000 (04:06 -0400)
committerSasha Levin <sashal@kernel.org>
Sun, 6 Oct 2024 08:06:51 +0000 (04:06 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/series
queue-4.19/xen-add-capability-to-remap-non-ram-pages-to-differe.patch [deleted file]
queue-5.10/series
queue-5.10/xen-add-capability-to-remap-non-ram-pages-to-differe.patch [deleted file]
queue-5.15/series
queue-5.15/xen-add-capability-to-remap-non-ram-pages-to-differe.patch [deleted file]
queue-5.4/series
queue-5.4/xen-add-capability-to-remap-non-ram-pages-to-differe.patch [deleted file]
queue-6.1/series
queue-6.1/xen-add-capability-to-remap-non-ram-pages-to-differe.patch [deleted file]

index 05ef90b5afbdb75d8721d8c765854f38862585bb..d7478b4cce44dc7b309cd788da6c09f1541c4c1e 100644 (file)
@@ -63,7 +63,6 @@ drm-msm-fix-s-null-argument-error.patch
 xen-use-correct-end-address-of-kernel-for-conflict-c.patch
 xen-introduce-generic-helper-checking-for-memory-map.patch
 xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch
-xen-add-capability-to-remap-non-ram-pages-to-differe.patch
 xen-swiotlb-simplify-range_straddles_page_boundary.patch
 xen-swiotlb-add-alignment-check-for-dma-buffers.patch
 selftests-bpf-fix-error-compiling-test_lru_map.c.patch
diff --git a/queue-4.19/xen-add-capability-to-remap-non-ram-pages-to-differe.patch b/queue-4.19/xen-add-capability-to-remap-non-ram-pages-to-differe.patch
deleted file mode 100644 (file)
index 592bdd7..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 0a544f1cb96b13fc2453635d1dc9ff49852e6137 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Aug 2024 16:47:25 +0200
-Subject: xen: add capability to remap non-RAM pages to different PFNs
-
-From: Juergen Gross <jgross@suse.com>
-
-[ Upstream commit d05208cf7f05420ad10cc7f9550f91d485523659 ]
-
-When running as a Xen PV dom0 it can happen that the kernel is being
-loaded to a guest physical address conflicting with the host memory
-map.
-
-In order to be able to resolve this conflict, add the capability to
-remap non-RAM areas to different guest PFNs. A function to use this
-remapping information for other purposes than doing the remap will be
-added when needed.
-
-As the number of conflicts should be rather low (currently only
-machines with max. 1 conflict are known), save the remap data in a
-small statically allocated array.
-
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/xen/p2m.c     | 63 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |  3 ++
- 2 files changed, 66 insertions(+)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 8cbdc5e6863c3..3828271697f94 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -78,6 +78,7 @@
- #include <asm/xen/hypervisor.h>
- #include <xen/balloon.h>
- #include <xen/grant_table.h>
-+#include <xen/hvc-console.h>
- #include "multicalls.h"
- #include "xen-ops.h"
-@@ -798,6 +799,68 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
- }
- EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
-+/* Remapped non-RAM areas */
-+#define NR_NONRAM_REMAP 4
-+static struct nonram_remap {
-+      phys_addr_t maddr;
-+      phys_addr_t paddr;
-+      size_t size;
-+} xen_nonram_remap[NR_NONRAM_REMAP] __ro_after_init;
-+static unsigned int nr_nonram_remap __ro_after_init;
-+
-+/*
-+ * Do the real remapping of non-RAM regions as specified in the
-+ * xen_nonram_remap[] array.
-+ * In case of an error just crash the system.
-+ */
-+void __init xen_do_remap_nonram(void)
-+{
-+      unsigned int i;
-+      unsigned int remapped = 0;
-+      const struct nonram_remap *remap = xen_nonram_remap;
-+      unsigned long pfn, mfn, end_pfn;
-+
-+      for (i = 0; i < nr_nonram_remap; i++) {
-+              end_pfn = PFN_UP(remap->paddr + remap->size);
-+              pfn = PFN_DOWN(remap->paddr);
-+              mfn = PFN_DOWN(remap->maddr);
-+              while (pfn < end_pfn) {
-+                      if (!set_phys_to_machine(pfn, mfn))
-+                              panic("Failed to set p2m mapping for pfn=%lx mfn=%lx\n",
-+                                     pfn, mfn);
-+
-+                      pfn++;
-+                      mfn++;
-+                      remapped++;
-+              }
-+
-+              remap++;
-+      }
-+
-+      pr_info("Remapped %u non-RAM page(s)\n", remapped);
-+}
-+
-+/*
-+ * Add a new non-RAM remap entry.
-+ * In case of no free entry found, just crash the system.
-+ */
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size)
-+{
-+      BUG_ON((maddr & ~PAGE_MASK) != (paddr & ~PAGE_MASK));
-+
-+      if (nr_nonram_remap == NR_NONRAM_REMAP) {
-+              xen_raw_console_write("Number of required E820 entry remapping actions exceed maximum value\n");
-+              BUG();
-+      }
-+
-+      xen_nonram_remap[nr_nonram_remap].maddr = maddr;
-+      xen_nonram_remap[nr_nonram_remap].paddr = paddr;
-+      xen_nonram_remap[nr_nonram_remap].size = size;
-+
-+      nr_nonram_remap++;
-+}
-+
- #ifdef CONFIG_XEN_DEBUG_FS
- #include <linux/debugfs.h>
- #include "debugfs.h"
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 83f980867bc0b..932fb167bc990 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -45,6 +45,9 @@ void xen_mm_unpin_all(void);
- #ifdef CONFIG_X86_64
- void __init xen_relocate_p2m(void);
- #endif
-+void __init xen_do_remap_nonram(void);
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size);
- void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
-                                  const char *component);
--- 
-2.43.0
-
index 6431d85143ff6fc0e5cb33714a448c321da8c7f4..6a92e02a9e524309b35478b0a519cba83dffdb05 100644 (file)
@@ -133,7 +133,6 @@ drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch
 xen-use-correct-end-address-of-kernel-for-conflict-c.patch
 xen-introduce-generic-helper-checking-for-memory-map.patch
 xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch
-xen-add-capability-to-remap-non-ram-pages-to-differe.patch
 xen-swiotlb-add-alignment-check-for-dma-buffers.patch
 tpm-clean-up-tpm-space-after-command-failure.patch
 selftests-bpf-fix-compile-error-from-rlim_t-in-sk_st.patch
diff --git a/queue-5.10/xen-add-capability-to-remap-non-ram-pages-to-differe.patch b/queue-5.10/xen-add-capability-to-remap-non-ram-pages-to-differe.patch
deleted file mode 100644 (file)
index 2a0339f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 5c0568356000a349fb130419b5d53f8f357add75 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Aug 2024 16:47:25 +0200
-Subject: xen: add capability to remap non-RAM pages to different PFNs
-
-From: Juergen Gross <jgross@suse.com>
-
-[ Upstream commit d05208cf7f05420ad10cc7f9550f91d485523659 ]
-
-When running as a Xen PV dom0 it can happen that the kernel is being
-loaded to a guest physical address conflicting with the host memory
-map.
-
-In order to be able to resolve this conflict, add the capability to
-remap non-RAM areas to different guest PFNs. A function to use this
-remapping information for other purposes than doing the remap will be
-added when needed.
-
-As the number of conflicts should be rather low (currently only
-machines with max. 1 conflict are known), save the remap data in a
-small statically allocated array.
-
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/xen/p2m.c     | 63 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |  3 ++
- 2 files changed, 66 insertions(+)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index bfa972f7e8745..17df3143ae65c 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -80,6 +80,7 @@
- #include <asm/xen/hypervisor.h>
- #include <xen/balloon.h>
- #include <xen/grant_table.h>
-+#include <xen/hvc-console.h>
- #include "multicalls.h"
- #include "xen-ops.h"
-@@ -801,6 +802,68 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
- }
- EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
-+/* Remapped non-RAM areas */
-+#define NR_NONRAM_REMAP 4
-+static struct nonram_remap {
-+      phys_addr_t maddr;
-+      phys_addr_t paddr;
-+      size_t size;
-+} xen_nonram_remap[NR_NONRAM_REMAP] __ro_after_init;
-+static unsigned int nr_nonram_remap __ro_after_init;
-+
-+/*
-+ * Do the real remapping of non-RAM regions as specified in the
-+ * xen_nonram_remap[] array.
-+ * In case of an error just crash the system.
-+ */
-+void __init xen_do_remap_nonram(void)
-+{
-+      unsigned int i;
-+      unsigned int remapped = 0;
-+      const struct nonram_remap *remap = xen_nonram_remap;
-+      unsigned long pfn, mfn, end_pfn;
-+
-+      for (i = 0; i < nr_nonram_remap; i++) {
-+              end_pfn = PFN_UP(remap->paddr + remap->size);
-+              pfn = PFN_DOWN(remap->paddr);
-+              mfn = PFN_DOWN(remap->maddr);
-+              while (pfn < end_pfn) {
-+                      if (!set_phys_to_machine(pfn, mfn))
-+                              panic("Failed to set p2m mapping for pfn=%lx mfn=%lx\n",
-+                                     pfn, mfn);
-+
-+                      pfn++;
-+                      mfn++;
-+                      remapped++;
-+              }
-+
-+              remap++;
-+      }
-+
-+      pr_info("Remapped %u non-RAM page(s)\n", remapped);
-+}
-+
-+/*
-+ * Add a new non-RAM remap entry.
-+ * In case of no free entry found, just crash the system.
-+ */
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size)
-+{
-+      BUG_ON((maddr & ~PAGE_MASK) != (paddr & ~PAGE_MASK));
-+
-+      if (nr_nonram_remap == NR_NONRAM_REMAP) {
-+              xen_raw_console_write("Number of required E820 entry remapping actions exceed maximum value\n");
-+              BUG();
-+      }
-+
-+      xen_nonram_remap[nr_nonram_remap].maddr = maddr;
-+      xen_nonram_remap[nr_nonram_remap].paddr = paddr;
-+      xen_nonram_remap[nr_nonram_remap].size = size;
-+
-+      nr_nonram_remap++;
-+}
-+
- #ifdef CONFIG_XEN_DEBUG_FS
- #include <linux/debugfs.h>
- #include "debugfs.h"
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index d205686d92054..6ea24e08c4e6c 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -43,6 +43,9 @@ void xen_mm_unpin_all(void);
- #ifdef CONFIG_X86_64
- void __init xen_relocate_p2m(void);
- #endif
-+void __init xen_do_remap_nonram(void);
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size);
- void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
-                                  const char *component);
--- 
-2.43.0
-
index fd5a7ab2f5c15604ca2ea0378489b0f6485f3387..2ec7983dc3718f200618a8a795f7aed1aad81b83 100644 (file)
@@ -174,7 +174,6 @@ drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch
 xen-use-correct-end-address-of-kernel-for-conflict-c.patch
 xen-introduce-generic-helper-checking-for-memory-map.patch
 xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch
-xen-add-capability-to-remap-non-ram-pages-to-differe.patch
 xen-swiotlb-add-alignment-check-for-dma-buffers.patch
 tpm-clean-up-tpm-space-after-command-failure.patch
 selftests-bpf-fix-compile-error-from-rlim_t-in-sk_st.patch
diff --git a/queue-5.15/xen-add-capability-to-remap-non-ram-pages-to-differe.patch b/queue-5.15/xen-add-capability-to-remap-non-ram-pages-to-differe.patch
deleted file mode 100644 (file)
index 3e58fbf..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 42e67170cdf91439034af299778b592a8f6dee83 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Aug 2024 16:47:25 +0200
-Subject: xen: add capability to remap non-RAM pages to different PFNs
-
-From: Juergen Gross <jgross@suse.com>
-
-[ Upstream commit d05208cf7f05420ad10cc7f9550f91d485523659 ]
-
-When running as a Xen PV dom0 it can happen that the kernel is being
-loaded to a guest physical address conflicting with the host memory
-map.
-
-In order to be able to resolve this conflict, add the capability to
-remap non-RAM areas to different guest PFNs. A function to use this
-remapping information for other purposes than doing the remap will be
-added when needed.
-
-As the number of conflicts should be rather low (currently only
-machines with max. 1 conflict are known), save the remap data in a
-small statically allocated array.
-
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/xen/p2m.c     | 63 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |  3 ++
- 2 files changed, 66 insertions(+)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 9b3a9fa4a0ade..d458f2f960ac8 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -80,6 +80,7 @@
- #include <asm/xen/hypervisor.h>
- #include <xen/balloon.h>
- #include <xen/grant_table.h>
-+#include <xen/hvc-console.h>
- #include "multicalls.h"
- #include "xen-ops.h"
-@@ -799,6 +800,68 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
-       return ret;
- }
-+/* Remapped non-RAM areas */
-+#define NR_NONRAM_REMAP 4
-+static struct nonram_remap {
-+      phys_addr_t maddr;
-+      phys_addr_t paddr;
-+      size_t size;
-+} xen_nonram_remap[NR_NONRAM_REMAP] __ro_after_init;
-+static unsigned int nr_nonram_remap __ro_after_init;
-+
-+/*
-+ * Do the real remapping of non-RAM regions as specified in the
-+ * xen_nonram_remap[] array.
-+ * In case of an error just crash the system.
-+ */
-+void __init xen_do_remap_nonram(void)
-+{
-+      unsigned int i;
-+      unsigned int remapped = 0;
-+      const struct nonram_remap *remap = xen_nonram_remap;
-+      unsigned long pfn, mfn, end_pfn;
-+
-+      for (i = 0; i < nr_nonram_remap; i++) {
-+              end_pfn = PFN_UP(remap->paddr + remap->size);
-+              pfn = PFN_DOWN(remap->paddr);
-+              mfn = PFN_DOWN(remap->maddr);
-+              while (pfn < end_pfn) {
-+                      if (!set_phys_to_machine(pfn, mfn))
-+                              panic("Failed to set p2m mapping for pfn=%lx mfn=%lx\n",
-+                                     pfn, mfn);
-+
-+                      pfn++;
-+                      mfn++;
-+                      remapped++;
-+              }
-+
-+              remap++;
-+      }
-+
-+      pr_info("Remapped %u non-RAM page(s)\n", remapped);
-+}
-+
-+/*
-+ * Add a new non-RAM remap entry.
-+ * In case of no free entry found, just crash the system.
-+ */
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size)
-+{
-+      BUG_ON((maddr & ~PAGE_MASK) != (paddr & ~PAGE_MASK));
-+
-+      if (nr_nonram_remap == NR_NONRAM_REMAP) {
-+              xen_raw_console_write("Number of required E820 entry remapping actions exceed maximum value\n");
-+              BUG();
-+      }
-+
-+      xen_nonram_remap[nr_nonram_remap].maddr = maddr;
-+      xen_nonram_remap[nr_nonram_remap].paddr = paddr;
-+      xen_nonram_remap[nr_nonram_remap].size = size;
-+
-+      nr_nonram_remap++;
-+}
-+
- #ifdef CONFIG_XEN_DEBUG_FS
- #include <linux/debugfs.h>
- #include "debugfs.h"
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 55e6e7efb426e..680e26ad436ee 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -43,6 +43,9 @@ void xen_mm_unpin_all(void);
- #ifdef CONFIG_X86_64
- void __init xen_relocate_p2m(void);
- #endif
-+void __init xen_do_remap_nonram(void);
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size);
- void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
-                                  const char *component);
--- 
-2.43.0
-
index 151fb2d15d1234979849ac6e3437ec545cbc48a9..1ee7b13cddbf705ec9d6f153d0bb6d72f7e7c1b1 100644 (file)
@@ -85,7 +85,6 @@ drivers-drm-exynos_drm_gsc-fix-wrong-assignment-in-g.patch
 xen-use-correct-end-address-of-kernel-for-conflict-c.patch
 xen-introduce-generic-helper-checking-for-memory-map.patch
 xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch
-xen-add-capability-to-remap-non-ram-pages-to-differe.patch
 xen-swiotlb-add-alignment-check-for-dma-buffers.patch
 tpm-clean-up-tpm-space-after-command-failure.patch
 selftests-bpf-fix-compile-error-from-rlim_t-in-sk_st.patch
diff --git a/queue-5.4/xen-add-capability-to-remap-non-ram-pages-to-differe.patch b/queue-5.4/xen-add-capability-to-remap-non-ram-pages-to-differe.patch
deleted file mode 100644 (file)
index 5d273e4..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 293d92229a4dee751519ac8bb6a07ce39e8a5259 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Aug 2024 16:47:25 +0200
-Subject: xen: add capability to remap non-RAM pages to different PFNs
-
-From: Juergen Gross <jgross@suse.com>
-
-[ Upstream commit d05208cf7f05420ad10cc7f9550f91d485523659 ]
-
-When running as a Xen PV dom0 it can happen that the kernel is being
-loaded to a guest physical address conflicting with the host memory
-map.
-
-In order to be able to resolve this conflict, add the capability to
-remap non-RAM areas to different guest PFNs. A function to use this
-remapping information for other purposes than doing the remap will be
-added when needed.
-
-As the number of conflicts should be rather low (currently only
-machines with max. 1 conflict are known), save the remap data in a
-small statically allocated array.
-
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/xen/p2m.c     | 63 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |  3 ++
- 2 files changed, 66 insertions(+)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index bfe6e862e13e2..3e9b655a26cae 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -80,6 +80,7 @@
- #include <asm/xen/hypervisor.h>
- #include <xen/balloon.h>
- #include <xen/grant_table.h>
-+#include <xen/hvc-console.h>
- #include "multicalls.h"
- #include "xen-ops.h"
-@@ -806,6 +807,68 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
- }
- EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
-+/* Remapped non-RAM areas */
-+#define NR_NONRAM_REMAP 4
-+static struct nonram_remap {
-+      phys_addr_t maddr;
-+      phys_addr_t paddr;
-+      size_t size;
-+} xen_nonram_remap[NR_NONRAM_REMAP] __ro_after_init;
-+static unsigned int nr_nonram_remap __ro_after_init;
-+
-+/*
-+ * Do the real remapping of non-RAM regions as specified in the
-+ * xen_nonram_remap[] array.
-+ * In case of an error just crash the system.
-+ */
-+void __init xen_do_remap_nonram(void)
-+{
-+      unsigned int i;
-+      unsigned int remapped = 0;
-+      const struct nonram_remap *remap = xen_nonram_remap;
-+      unsigned long pfn, mfn, end_pfn;
-+
-+      for (i = 0; i < nr_nonram_remap; i++) {
-+              end_pfn = PFN_UP(remap->paddr + remap->size);
-+              pfn = PFN_DOWN(remap->paddr);
-+              mfn = PFN_DOWN(remap->maddr);
-+              while (pfn < end_pfn) {
-+                      if (!set_phys_to_machine(pfn, mfn))
-+                              panic("Failed to set p2m mapping for pfn=%lx mfn=%lx\n",
-+                                     pfn, mfn);
-+
-+                      pfn++;
-+                      mfn++;
-+                      remapped++;
-+              }
-+
-+              remap++;
-+      }
-+
-+      pr_info("Remapped %u non-RAM page(s)\n", remapped);
-+}
-+
-+/*
-+ * Add a new non-RAM remap entry.
-+ * In case of no free entry found, just crash the system.
-+ */
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size)
-+{
-+      BUG_ON((maddr & ~PAGE_MASK) != (paddr & ~PAGE_MASK));
-+
-+      if (nr_nonram_remap == NR_NONRAM_REMAP) {
-+              xen_raw_console_write("Number of required E820 entry remapping actions exceed maximum value\n");
-+              BUG();
-+      }
-+
-+      xen_nonram_remap[nr_nonram_remap].maddr = maddr;
-+      xen_nonram_remap[nr_nonram_remap].paddr = paddr;
-+      xen_nonram_remap[nr_nonram_remap].size = size;
-+
-+      nr_nonram_remap++;
-+}
-+
- #ifdef CONFIG_XEN_DEBUG_FS
- #include <linux/debugfs.h>
- #include "debugfs.h"
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 4e2cc1e23f843..5e398ae5943bd 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -45,6 +45,9 @@ void xen_mm_unpin_all(void);
- #ifdef CONFIG_X86_64
- void __init xen_relocate_p2m(void);
- #endif
-+void __init xen_do_remap_nonram(void);
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size);
- void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
-                                  const char *component);
--- 
-2.43.0
-
index 19c1fbf419a1bd0fa4954d08dc8c43b552ef82b6..ad9ef63540ed8393046e4ea5b9a8079e0067bbee 100644 (file)
@@ -134,7 +134,6 @@ hid-wacom-support-sequence-numbers-smaller-than-16-b.patch
 hid-wacom-do-not-warn-about-dropped-packets-for-firs.patch
 xen-introduce-generic-helper-checking-for-memory-map.patch
 xen-move-max_pfn-in-xen_memory_setup-out-of-function.patch
-xen-add-capability-to-remap-non-ram-pages-to-differe.patch
 xen-swiotlb-add-alignment-check-for-dma-buffers.patch
 xen-swiotlb-fix-allocated-size.patch
 tpm-clean-up-tpm-space-after-command-failure.patch
diff --git a/queue-6.1/xen-add-capability-to-remap-non-ram-pages-to-differe.patch b/queue-6.1/xen-add-capability-to-remap-non-ram-pages-to-differe.patch
deleted file mode 100644 (file)
index 8ec9d0a..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From a8dfa1230459c1eb2274b6428e17472cfcf2b29b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 14 Aug 2024 16:47:25 +0200
-Subject: xen: add capability to remap non-RAM pages to different PFNs
-
-From: Juergen Gross <jgross@suse.com>
-
-[ Upstream commit d05208cf7f05420ad10cc7f9550f91d485523659 ]
-
-When running as a Xen PV dom0 it can happen that the kernel is being
-loaded to a guest physical address conflicting with the host memory
-map.
-
-In order to be able to resolve this conflict, add the capability to
-remap non-RAM areas to different guest PFNs. A function to use this
-remapping information for other purposes than doing the remap will be
-added when needed.
-
-As the number of conflicts should be rather low (currently only
-machines with max. 1 conflict are known), save the remap data in a
-small statically allocated array.
-
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Stable-dep-of: be35d91c8880 ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/xen/p2m.c     | 63 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |  3 ++
- 2 files changed, 66 insertions(+)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index a02cc54338897..7376892730cd5 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -80,6 +80,7 @@
- #include <asm/xen/hypervisor.h>
- #include <xen/balloon.h>
- #include <xen/grant_table.h>
-+#include <xen/hvc-console.h>
- #include "multicalls.h"
- #include "xen-ops.h"
-@@ -799,6 +800,68 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
-       return ret;
- }
-+/* Remapped non-RAM areas */
-+#define NR_NONRAM_REMAP 4
-+static struct nonram_remap {
-+      phys_addr_t maddr;
-+      phys_addr_t paddr;
-+      size_t size;
-+} xen_nonram_remap[NR_NONRAM_REMAP] __ro_after_init;
-+static unsigned int nr_nonram_remap __ro_after_init;
-+
-+/*
-+ * Do the real remapping of non-RAM regions as specified in the
-+ * xen_nonram_remap[] array.
-+ * In case of an error just crash the system.
-+ */
-+void __init xen_do_remap_nonram(void)
-+{
-+      unsigned int i;
-+      unsigned int remapped = 0;
-+      const struct nonram_remap *remap = xen_nonram_remap;
-+      unsigned long pfn, mfn, end_pfn;
-+
-+      for (i = 0; i < nr_nonram_remap; i++) {
-+              end_pfn = PFN_UP(remap->paddr + remap->size);
-+              pfn = PFN_DOWN(remap->paddr);
-+              mfn = PFN_DOWN(remap->maddr);
-+              while (pfn < end_pfn) {
-+                      if (!set_phys_to_machine(pfn, mfn))
-+                              panic("Failed to set p2m mapping for pfn=%lx mfn=%lx\n",
-+                                     pfn, mfn);
-+
-+                      pfn++;
-+                      mfn++;
-+                      remapped++;
-+              }
-+
-+              remap++;
-+      }
-+
-+      pr_info("Remapped %u non-RAM page(s)\n", remapped);
-+}
-+
-+/*
-+ * Add a new non-RAM remap entry.
-+ * In case of no free entry found, just crash the system.
-+ */
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size)
-+{
-+      BUG_ON((maddr & ~PAGE_MASK) != (paddr & ~PAGE_MASK));
-+
-+      if (nr_nonram_remap == NR_NONRAM_REMAP) {
-+              xen_raw_console_write("Number of required E820 entry remapping actions exceed maximum value\n");
-+              BUG();
-+      }
-+
-+      xen_nonram_remap[nr_nonram_remap].maddr = maddr;
-+      xen_nonram_remap[nr_nonram_remap].paddr = paddr;
-+      xen_nonram_remap[nr_nonram_remap].size = size;
-+
-+      nr_nonram_remap++;
-+}
-+
- #ifdef CONFIG_XEN_DEBUG_FS
- #include <linux/debugfs.h>
- #include "debugfs.h"
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 35670a44ef4c5..793caab79055b 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -43,6 +43,9 @@ void xen_mm_unpin_all(void);
- #ifdef CONFIG_X86_64
- void __init xen_relocate_p2m(void);
- #endif
-+void __init xen_do_remap_nonram(void);
-+void __init xen_add_remap_nonram(phys_addr_t maddr, phys_addr_t paddr,
-+                               unsigned long size);
- void __init xen_chk_is_e820_usable(phys_addr_t start, phys_addr_t size,
-                                  const char *component);
--- 
-2.43.0
-