diff options
| -rw-r--r-- | arch/arm/include/uapi/asm/unistd.h | 1 | ||||
| -rw-r--r-- | arch/arm/kernel/calls.S | 1 | ||||
| -rw-r--r-- | arch/arm/mm/dump.c | 9 | ||||
| -rw-r--r-- | arch/arm/mm/init.c | 4 | ||||
| -rw-r--r-- | arch/arm/mm/mmu.c | 4 |
5 files changed, 8 insertions, 11 deletions
diff --git a/arch/arm/include/uapi/asm/unistd.h b/arch/arm/include/uapi/asm/unistd.h index 705bb7620673..0c3f5a0dafd3 100644 --- a/arch/arm/include/uapi/asm/unistd.h +++ b/arch/arm/include/uapi/asm/unistd.h | |||
| @@ -413,6 +413,7 @@ | |||
| 413 | #define __NR_getrandom (__NR_SYSCALL_BASE+384) | 413 | #define __NR_getrandom (__NR_SYSCALL_BASE+384) |
| 414 | #define __NR_memfd_create (__NR_SYSCALL_BASE+385) | 414 | #define __NR_memfd_create (__NR_SYSCALL_BASE+385) |
| 415 | #define __NR_bpf (__NR_SYSCALL_BASE+386) | 415 | #define __NR_bpf (__NR_SYSCALL_BASE+386) |
| 416 | #define __NR_execveat (__NR_SYSCALL_BASE+387) | ||
| 416 | 417 | ||
| 417 | /* | 418 | /* |
| 418 | * The following SWIs are ARM private. | 419 | * The following SWIs are ARM private. |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S index e51833f8cc38..05745eb838c5 100644 --- a/arch/arm/kernel/calls.S +++ b/arch/arm/kernel/calls.S | |||
| @@ -396,6 +396,7 @@ | |||
| 396 | CALL(sys_getrandom) | 396 | CALL(sys_getrandom) |
| 397 | /* 385 */ CALL(sys_memfd_create) | 397 | /* 385 */ CALL(sys_memfd_create) |
| 398 | CALL(sys_bpf) | 398 | CALL(sys_bpf) |
| 399 | CALL(sys_execveat) | ||
| 399 | #ifndef syscalls_counted | 400 | #ifndef syscalls_counted |
| 400 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls | 401 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls |
| 401 | #define syscalls_counted | 402 | #define syscalls_counted |
diff --git a/arch/arm/mm/dump.c b/arch/arm/mm/dump.c index 59424937e52b..9fe8e241335c 100644 --- a/arch/arm/mm/dump.c +++ b/arch/arm/mm/dump.c | |||
| @@ -220,9 +220,6 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level, u | |||
| 220 | static const char units[] = "KMGTPE"; | 220 | static const char units[] = "KMGTPE"; |
| 221 | u64 prot = val & pg_level[level].mask; | 221 | u64 prot = val & pg_level[level].mask; |
| 222 | 222 | ||
| 223 | if (addr < USER_PGTABLES_CEILING) | ||
| 224 | return; | ||
| 225 | |||
| 226 | if (!st->level) { | 223 | if (!st->level) { |
| 227 | st->level = level; | 224 | st->level = level; |
| 228 | st->current_prot = prot; | 225 | st->current_prot = prot; |
| @@ -308,15 +305,13 @@ static void walk_pgd(struct seq_file *m) | |||
| 308 | pgd_t *pgd = swapper_pg_dir; | 305 | pgd_t *pgd = swapper_pg_dir; |
| 309 | struct pg_state st; | 306 | struct pg_state st; |
| 310 | unsigned long addr; | 307 | unsigned long addr; |
| 311 | unsigned i, pgdoff = USER_PGTABLES_CEILING / PGDIR_SIZE; | 308 | unsigned i; |
| 312 | 309 | ||
| 313 | memset(&st, 0, sizeof(st)); | 310 | memset(&st, 0, sizeof(st)); |
| 314 | st.seq = m; | 311 | st.seq = m; |
| 315 | st.marker = address_markers; | 312 | st.marker = address_markers; |
| 316 | 313 | ||
| 317 | pgd += pgdoff; | 314 | for (i = 0; i < PTRS_PER_PGD; i++, pgd++) { |
| 318 | |||
| 319 | for (i = pgdoff; i < PTRS_PER_PGD; i++, pgd++) { | ||
| 320 | addr = i * PGDIR_SIZE; | 315 | addr = i * PGDIR_SIZE; |
| 321 | if (!pgd_none(*pgd)) { | 316 | if (!pgd_none(*pgd)) { |
| 322 | walk_pud(&st, pgd, addr); | 317 | walk_pud(&st, pgd, addr); |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 98ad9c79ea0e..2495c8cb47ba 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
| @@ -658,8 +658,8 @@ static struct section_perm ro_perms[] = { | |||
| 658 | .start = (unsigned long)_stext, | 658 | .start = (unsigned long)_stext, |
| 659 | .end = (unsigned long)__init_begin, | 659 | .end = (unsigned long)__init_begin, |
| 660 | #ifdef CONFIG_ARM_LPAE | 660 | #ifdef CONFIG_ARM_LPAE |
| 661 | .mask = ~PMD_SECT_RDONLY, | 661 | .mask = ~L_PMD_SECT_RDONLY, |
| 662 | .prot = PMD_SECT_RDONLY, | 662 | .prot = L_PMD_SECT_RDONLY, |
| 663 | #else | 663 | #else |
| 664 | .mask = ~(PMD_SECT_APX | PMD_SECT_AP_WRITE), | 664 | .mask = ~(PMD_SECT_APX | PMD_SECT_AP_WRITE), |
| 665 | .prot = PMD_SECT_APX | PMD_SECT_AP_WRITE, | 665 | .prot = PMD_SECT_APX | PMD_SECT_AP_WRITE, |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index cda7c40999b6..4e6ef896c619 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
| @@ -1329,8 +1329,8 @@ static void __init kmap_init(void) | |||
| 1329 | static void __init map_lowmem(void) | 1329 | static void __init map_lowmem(void) |
| 1330 | { | 1330 | { |
| 1331 | struct memblock_region *reg; | 1331 | struct memblock_region *reg; |
| 1332 | unsigned long kernel_x_start = round_down(__pa(_stext), SECTION_SIZE); | 1332 | phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE); |
| 1333 | unsigned long kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE); | 1333 | phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE); |
| 1334 | 1334 | ||
| 1335 | /* Map all the lowmem memory banks. */ | 1335 | /* Map all the lowmem memory banks. */ |
| 1336 | for_each_memblock(memory, reg) { | 1336 | for_each_memblock(memory, reg) { |
