Commit 0cbaed1d8c2493934b86b4ad99b2de9fcce008e8

Authored by Linus Torvalds

Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
 "Three small fixes from over the Christmas period, and wiring up the
  new execveat syscall for ARM"

* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
  ARM: 8275/1: mm: fix PMD_SECT_RDONLY undeclared compile error
  ARM: 8253/1: mm: use phys_addr_t type in map_lowmem() for kernel mem region
  ARM: 8249/1: mm: dump: don't skip regions
  ARM: wire up execveat syscall

Showing 5 changed files Side-by-side Diff

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