+++ /dev/null
-From 6c0d0d9d497aab248d4dbe61844486545e2bab8e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Feb 2021 10:03:51 -0500
-Subject: arm64: mm: correct the inside linear map range during hotplug check
-
-From: Pavel Tatashin <pasha.tatashin@soleen.com>
-
-[ Upstream commit ee7febce051945be28ad86d16a15886f878204de ]
-
-Memory hotplug may fail on systems with CONFIG_RANDOMIZE_BASE because the
-linear map range is not checked correctly.
-
-The start physical address that linear map covers can be actually at the
-end of the range because of randomization. Check that and if so reduce it
-to 0.
-
-This can be verified on QEMU with setting kaslr-seed to ~0ul:
-
-memstart_offset_seed = 0xffff
-START: __pa(_PAGE_OFFSET(vabits_actual)) = ffff9000c0000000
-END: __pa(PAGE_END - 1) = 1000bfffffff
-
-Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
-Fixes: 58284a901b42 ("arm64/mm: Validate hotplug range before creating linear mapping")
-Tested-by: Tyler Hicks <tyhicks@linux.microsoft.com>
-Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
-Link: https://lore.kernel.org/r/20210216150351.129018-2-pasha.tatashin@soleen.com
-Signed-off-by: Will Deacon <will@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/mm/mmu.c | 21 +++++++++++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
-index 0635803463a5..10938dbe1f11 100644
---- a/arch/arm64/mm/mmu.c
-+++ b/arch/arm64/mm/mmu.c
-@@ -1448,6 +1448,22 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
- struct range arch_get_mappable_range(void)
- {
- struct range mhp_range;
-+ u64 start_linear_pa = __pa(_PAGE_OFFSET(vabits_actual));
-+ u64 end_linear_pa = __pa(PAGE_END - 1);
-+
-+ if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {
-+ /*
-+ * Check for a wrap, it is possible because of randomized linear
-+ * mapping the start physical address is actually bigger than
-+ * the end physical address. In this case set start to zero
-+ * because [0, end_linear_pa] range must still be able to cover
-+ * all addressable physical addresses.
-+ */
-+ if (start_linear_pa > end_linear_pa)
-+ start_linear_pa = 0;
-+ }
-+
-+ WARN_ON(start_linear_pa > end_linear_pa);
-
- /*
- * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
-@@ -1455,8 +1471,9 @@ struct range arch_get_mappable_range(void)
- * range which can be mapped inside this linear mapping range, must
- * also be derived from its end points.
- */
-- mhp_range.start = __pa(_PAGE_OFFSET(vabits_actual));
-- mhp_range.end = __pa(PAGE_END - 1);
-+ mhp_range.start = start_linear_pa;
-+ mhp_range.end = end_linear_pa;
-+
- return mhp_range;
- }
-
---
-2.30.1
-
+++ /dev/null
-From 300406ce621b676cd95235171c5ea67ee0468293 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 25 Feb 2021 17:17:37 -0800
-Subject: arm64/mm: define arch_get_mappable_range()
-
-From: Anshuman Khandual <anshuman.khandual@arm.com>
-
-[ Upstream commit 03aaf83fba6e5af08b5dd174c72edee9b7d9ed9b ]
-
-This overrides arch_get_mappable_range() on arm64 platform which will be
-used with recently added generic framework. It drops
-inside_linear_region() and subsequent check in arch_add_memory() which are
-no longer required. It also adds a VM_BUG_ON() check that would ensure
-that mhp_range_allowed() has already been called.
-
-Link: https://lkml.kernel.org/r/1612149902-7867-3-git-send-email-anshuman.khandual@arm.com
-Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
-Reviewed-by: David Hildenbrand <david@redhat.com>
-Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
-Cc: Will Deacon <will@kernel.org>
-Cc: Ard Biesheuvel <ardb@kernel.org>
-Cc: Mark Rutland <mark.rutland@arm.com>
-Cc: Heiko Carstens <hca@linux.ibm.com>
-Cc: Jason Wang <jasowang@redhat.com>
-Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Cc: "Michael S. Tsirkin" <mst@redhat.com>
-Cc: Michal Hocko <mhocko@kernel.org>
-Cc: Oscar Salvador <osalvador@suse.de>
-Cc: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
-Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
-Cc: teawater <teawaterz@linux.alibaba.com>
-Cc: Vasily Gorbik <gor@linux.ibm.com>
-Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/mm/mmu.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
-index 6aabf1eced31..0635803463a5 100644
---- a/arch/arm64/mm/mmu.c
-+++ b/arch/arm64/mm/mmu.c
-@@ -1445,16 +1445,19 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
- free_empty_tables(start, end, PAGE_OFFSET, PAGE_END);
- }
-
--static bool inside_linear_region(u64 start, u64 size)
-+struct range arch_get_mappable_range(void)
- {
-+ struct range mhp_range;
-+
- /*
- * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
- * accommodating both its ends but excluding PAGE_END. Max physical
- * range which can be mapped inside this linear mapping range, must
- * also be derived from its end points.
- */
-- return start >= __pa(_PAGE_OFFSET(vabits_actual)) &&
-- (start + size - 1) <= __pa(PAGE_END - 1);
-+ mhp_range.start = __pa(_PAGE_OFFSET(vabits_actual));
-+ mhp_range.end = __pa(PAGE_END - 1);
-+ return mhp_range;
- }
-
- int arch_add_memory(int nid, u64 start, u64 size,
-@@ -1462,11 +1465,7 @@ int arch_add_memory(int nid, u64 start, u64 size,
- {
- int ret, flags = 0;
-
-- if (!inside_linear_region(start, size)) {
-- pr_err("[%llx %llx] is outside linear mapping region\n", start, start + size);
-- return -EINVAL;
-- }
--
-+ VM_BUG_ON(!mhp_range_allowed(start, size, true));
- if (rodata_full || debug_pagealloc_enabled())
- flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
-
---
-2.30.1
-
net-phy-broadcom-fix-rgmii-delays-for-bcm50160-and-b.patch
revert-netfilter-x_tables-switch-synchronization-to-.patch
netfilter-x_tables-use-correct-memory-barriers.patch
-arm64-mm-define-arch_get_mappable_range.patch
-arm64-mm-correct-the-inside-linear-map-range-during-.patch
dm-table-fix-zoned-model-check-and-zone-sectors-chec.patch
mm-mmu_notifiers-ensure-range_end-is-paired-with-ran.patch
revert-netfilter-x_tables-update-remaining-dereferen.patch
+++ /dev/null
-From 72b31a72819ae4245de59ab28613830148308de0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 16 Feb 2021 10:03:51 -0500
-Subject: arm64: mm: correct the inside linear map range during hotplug check
-
-From: Pavel Tatashin <pasha.tatashin@soleen.com>
-
-[ Upstream commit ee7febce051945be28ad86d16a15886f878204de ]
-
-Memory hotplug may fail on systems with CONFIG_RANDOMIZE_BASE because the
-linear map range is not checked correctly.
-
-The start physical address that linear map covers can be actually at the
-end of the range because of randomization. Check that and if so reduce it
-to 0.
-
-This can be verified on QEMU with setting kaslr-seed to ~0ul:
-
-memstart_offset_seed = 0xffff
-START: __pa(_PAGE_OFFSET(vabits_actual)) = ffff9000c0000000
-END: __pa(PAGE_END - 1) = 1000bfffffff
-
-Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
-Fixes: 58284a901b42 ("arm64/mm: Validate hotplug range before creating linear mapping")
-Tested-by: Tyler Hicks <tyhicks@linux.microsoft.com>
-Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
-Link: https://lore.kernel.org/r/20210216150351.129018-2-pasha.tatashin@soleen.com
-Signed-off-by: Will Deacon <will@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/mm/mmu.c | 21 +++++++++++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
-index 92b3be127796..3ca02e917598 100644
---- a/arch/arm64/mm/mmu.c
-+++ b/arch/arm64/mm/mmu.c
-@@ -1446,6 +1446,22 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
- struct range arch_get_mappable_range(void)
- {
- struct range mhp_range;
-+ u64 start_linear_pa = __pa(_PAGE_OFFSET(vabits_actual));
-+ u64 end_linear_pa = __pa(PAGE_END - 1);
-+
-+ if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {
-+ /*
-+ * Check for a wrap, it is possible because of randomized linear
-+ * mapping the start physical address is actually bigger than
-+ * the end physical address. In this case set start to zero
-+ * because [0, end_linear_pa] range must still be able to cover
-+ * all addressable physical addresses.
-+ */
-+ if (start_linear_pa > end_linear_pa)
-+ start_linear_pa = 0;
-+ }
-+
-+ WARN_ON(start_linear_pa > end_linear_pa);
-
- /*
- * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
-@@ -1453,8 +1469,9 @@ struct range arch_get_mappable_range(void)
- * range which can be mapped inside this linear mapping range, must
- * also be derived from its end points.
- */
-- mhp_range.start = __pa(_PAGE_OFFSET(vabits_actual));
-- mhp_range.end = __pa(PAGE_END - 1);
-+ mhp_range.start = start_linear_pa;
-+ mhp_range.end = end_linear_pa;
-+
- return mhp_range;
- }
-
---
-2.30.1
-
+++ /dev/null
-From c3a48fcf450b7769b5ee743f9eda4329f883b7e6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 25 Feb 2021 17:17:37 -0800
-Subject: arm64/mm: define arch_get_mappable_range()
-
-From: Anshuman Khandual <anshuman.khandual@arm.com>
-
-[ Upstream commit 03aaf83fba6e5af08b5dd174c72edee9b7d9ed9b ]
-
-This overrides arch_get_mappable_range() on arm64 platform which will be
-used with recently added generic framework. It drops
-inside_linear_region() and subsequent check in arch_add_memory() which are
-no longer required. It also adds a VM_BUG_ON() check that would ensure
-that mhp_range_allowed() has already been called.
-
-Link: https://lkml.kernel.org/r/1612149902-7867-3-git-send-email-anshuman.khandual@arm.com
-Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
-Reviewed-by: David Hildenbrand <david@redhat.com>
-Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
-Cc: Will Deacon <will@kernel.org>
-Cc: Ard Biesheuvel <ardb@kernel.org>
-Cc: Mark Rutland <mark.rutland@arm.com>
-Cc: Heiko Carstens <hca@linux.ibm.com>
-Cc: Jason Wang <jasowang@redhat.com>
-Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-Cc: "Michael S. Tsirkin" <mst@redhat.com>
-Cc: Michal Hocko <mhocko@kernel.org>
-Cc: Oscar Salvador <osalvador@suse.de>
-Cc: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
-Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
-Cc: teawater <teawaterz@linux.alibaba.com>
-Cc: Vasily Gorbik <gor@linux.ibm.com>
-Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/arm64/mm/mmu.c | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
-index 6f0648777d34..92b3be127796 100644
---- a/arch/arm64/mm/mmu.c
-+++ b/arch/arm64/mm/mmu.c
-@@ -1443,16 +1443,19 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
- free_empty_tables(start, end, PAGE_OFFSET, PAGE_END);
- }
-
--static bool inside_linear_region(u64 start, u64 size)
-+struct range arch_get_mappable_range(void)
- {
-+ struct range mhp_range;
-+
- /*
- * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
- * accommodating both its ends but excluding PAGE_END. Max physical
- * range which can be mapped inside this linear mapping range, must
- * also be derived from its end points.
- */
-- return start >= __pa(_PAGE_OFFSET(vabits_actual)) &&
-- (start + size - 1) <= __pa(PAGE_END - 1);
-+ mhp_range.start = __pa(_PAGE_OFFSET(vabits_actual));
-+ mhp_range.end = __pa(PAGE_END - 1);
-+ return mhp_range;
- }
-
- int arch_add_memory(int nid, u64 start, u64 size,
-@@ -1460,11 +1463,7 @@ int arch_add_memory(int nid, u64 start, u64 size,
- {
- int ret, flags = 0;
-
-- if (!inside_linear_region(start, size)) {
-- pr_err("[%llx %llx] is outside linear mapping region\n", start, start + size);
-- return -EINVAL;
-- }
--
-+ VM_BUG_ON(!mhp_range_allowed(start, size, true));
- if (rodata_full || debug_pagealloc_enabled())
- flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
-
---
-2.30.1
-
bpf-fix-fexit-trampoline.patch
bpf-use-nop_atomic5-instead-of-emit_nops-prog-5-for-.patch
platform-x86-dell-wmi-sysman-cleanup-create_attribut.patch
-arm64-mm-define-arch_get_mappable_range.patch
-arm64-mm-correct-the-inside-linear-map-range-during-.patch
dm-table-fix-zoned-model-check-and-zone-sectors-chec.patch
mm-mmu_notifiers-ensure-range_end-is-paired-with-ran.patch
revert-netfilter-x_tables-update-remaining-dereferen.patch