Fix compilation error
The patch is posted upstream and is already in next branch. Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
This commit is contained in:
parent
e0288866a8
commit
c0587c292d
|
@ -0,0 +1,145 @@
|
|||
From 5433a5c4594266e044e5def48275f2cb493709e0 Mon Sep 17 00:00:00 2001
|
||||
From: Atish Patra <atish.patra@wdc.com>
|
||||
Date: Mon, 24 Feb 2020 11:34:36 -0800
|
||||
Subject: [PATCH] RISC-V: Move all address space definition macros to one place
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If both CONFIG_KASAN and CONFIG_SPARSEMEM_VMEMMAP are set, we get the
|
||||
following compilation error.
|
||||
|
||||
---------------------------------------------------------------
|
||||
./arch/riscv/include/asm/pgtable-64.h: In function ‘pud_page’:
|
||||
./include/asm-generic/memory_model.h:54:29: error: ‘vmemmap’ undeclared
|
||||
(first use in this function); did you mean ‘mem_map’?
|
||||
#define __pfn_to_page(pfn) (vmemmap + (pfn))
|
||||
^~~~~~~
|
||||
./include/asm-generic/memory_model.h:82:21: note: in expansion of
|
||||
macro ‘__pfn_to_page’
|
||||
|
||||
#define pfn_to_page __pfn_to_page
|
||||
^~~~~~~~~~~~~
|
||||
./arch/riscv/include/asm/pgtable-64.h:70:9: note: in expansion of macro
|
||||
‘pfn_to_page’
|
||||
return pfn_to_page(pud_val(pud) >> _PAGE_PFN_SHIFT);
|
||||
---------------------------------------------------------------
|
||||
|
||||
Fix the compliation errors by moving all the address space definition
|
||||
macros before including pgtable-64.h.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Fixes: 8ad8b72721d0 (riscv: Add KASAN support)
|
||||
|
||||
Signed-off-by: Atish Patra <atish.patra@wdc.com>
|
||||
Reviewed-by: Anup Patel <anup@brainfault.org>
|
||||
---
|
||||
arch/riscv/include/asm/pgtable.h | 78 +++++++++++++++++---------------
|
||||
1 file changed, 41 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
|
||||
index e430415..393f201 100644
|
||||
--- a/arch/riscv/include/asm/pgtable.h
|
||||
+++ b/arch/riscv/include/asm/pgtable.h
|
||||
@@ -19,6 +19,47 @@
|
||||
#include <asm/tlbflush.h>
|
||||
#include <linux/mm_types.h>
|
||||
|
||||
+#ifdef CONFIG_MMU
|
||||
+
|
||||
+#define VMALLOC_SIZE (KERN_VIRT_SIZE >> 1)
|
||||
+#define VMALLOC_END (PAGE_OFFSET - 1)
|
||||
+#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
|
||||
+
|
||||
+#define BPF_JIT_REGION_SIZE (SZ_128M)
|
||||
+#define BPF_JIT_REGION_START (PAGE_OFFSET - BPF_JIT_REGION_SIZE)
|
||||
+#define BPF_JIT_REGION_END (VMALLOC_END)
|
||||
+
|
||||
+/*
|
||||
+ * Roughly size the vmemmap space to be large enough to fit enough
|
||||
+ * struct pages to map half the virtual address space. Then
|
||||
+ * position vmemmap directly below the VMALLOC region.
|
||||
+ */
|
||||
+#define VMEMMAP_SHIFT \
|
||||
+ (CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
|
||||
+#define VMEMMAP_SIZE BIT(VMEMMAP_SHIFT)
|
||||
+#define VMEMMAP_END (VMALLOC_START - 1)
|
||||
+#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
|
||||
+
|
||||
+/*
|
||||
+ * Define vmemmap for pfn_to_page & page_to_pfn calls. Needed if kernel
|
||||
+ * is configured with CONFIG_SPARSEMEM_VMEMMAP enabled.
|
||||
+ */
|
||||
+#define vmemmap ((struct page *)VMEMMAP_START)
|
||||
+
|
||||
+#define PCI_IO_SIZE SZ_16M
|
||||
+#define PCI_IO_END VMEMMAP_START
|
||||
+#define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
|
||||
+
|
||||
+#define FIXADDR_TOP PCI_IO_START
|
||||
+#ifdef CONFIG_64BIT
|
||||
+#define FIXADDR_SIZE PMD_SIZE
|
||||
+#else
|
||||
+#define FIXADDR_SIZE PGDIR_SIZE
|
||||
+#endif
|
||||
+#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
#ifdef CONFIG_64BIT
|
||||
#include <asm/pgtable-64.h>
|
||||
#else
|
||||
@@ -90,31 +131,6 @@ extern pgd_t swapper_pg_dir[];
|
||||
#define __S110 PAGE_SHARED_EXEC
|
||||
#define __S111 PAGE_SHARED_EXEC
|
||||
|
||||
-#define VMALLOC_SIZE (KERN_VIRT_SIZE >> 1)
|
||||
-#define VMALLOC_END (PAGE_OFFSET - 1)
|
||||
-#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
|
||||
-
|
||||
-#define BPF_JIT_REGION_SIZE (SZ_128M)
|
||||
-#define BPF_JIT_REGION_START (PAGE_OFFSET - BPF_JIT_REGION_SIZE)
|
||||
-#define BPF_JIT_REGION_END (VMALLOC_END)
|
||||
-
|
||||
-/*
|
||||
- * Roughly size the vmemmap space to be large enough to fit enough
|
||||
- * struct pages to map half the virtual address space. Then
|
||||
- * position vmemmap directly below the VMALLOC region.
|
||||
- */
|
||||
-#define VMEMMAP_SHIFT \
|
||||
- (CONFIG_VA_BITS - PAGE_SHIFT - 1 + STRUCT_PAGE_MAX_SHIFT)
|
||||
-#define VMEMMAP_SIZE BIT(VMEMMAP_SHIFT)
|
||||
-#define VMEMMAP_END (VMALLOC_START - 1)
|
||||
-#define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE)
|
||||
-
|
||||
-/*
|
||||
- * Define vmemmap for pfn_to_page & page_to_pfn calls. Needed if kernel
|
||||
- * is configured with CONFIG_SPARSEMEM_VMEMMAP enabled.
|
||||
- */
|
||||
-#define vmemmap ((struct page *)VMEMMAP_START)
|
||||
-
|
||||
static inline int pmd_present(pmd_t pmd)
|
||||
{
|
||||
return (pmd_val(pmd) & (_PAGE_PRESENT | _PAGE_PROT_NONE));
|
||||
@@ -432,18 +448,6 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
|
||||
|
||||
-#define PCI_IO_SIZE SZ_16M
|
||||
-#define PCI_IO_END VMEMMAP_START
|
||||
-#define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE)
|
||||
-
|
||||
-#define FIXADDR_TOP PCI_IO_START
|
||||
-#ifdef CONFIG_64BIT
|
||||
-#define FIXADDR_SIZE PMD_SIZE
|
||||
-#else
|
||||
-#define FIXADDR_SIZE PGDIR_SIZE
|
||||
-#endif
|
||||
-#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
|
||||
-
|
||||
/*
|
||||
* Task size is 0x4000000000 for RV64 or 0x9fc00000 for RV32.
|
||||
* Note that PGDIR_SIZE must evenly divide TASK_SIZE.
|
||||
--
|
||||
2.26.0.rc2
|
||||
|
|
@ -904,6 +904,10 @@ Patch509: drm-i915-backports.patch
|
|||
# https://github.com/sifive/riscv-linux/commits/dev/paulw/cpufreq-dt-aloe-v5.3-rc4
|
||||
Patch570: 0002-SiFive-Unleashed-CPUFreq.patch
|
||||
|
||||
# RISC-V Fix (posted upstream)
|
||||
# https://patchwork.kernel.org/patch/11401453/
|
||||
Patch571: 0001-RISC-V-Move-all-address-space-definition-macros-to-o.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
|
|
Loading…
Reference in New Issue