Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0cbaed1d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 505569d2 1e347922
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -413,6 +413,7 @@
#define __NR_getrandom			(__NR_SYSCALL_BASE+384)
#define __NR_memfd_create		(__NR_SYSCALL_BASE+385)
#define __NR_bpf			(__NR_SYSCALL_BASE+386)
#define __NR_execveat			(__NR_SYSCALL_BASE+387)

/*
 * The following SWIs are ARM private.
+1 −0
Original line number Diff line number Diff line
@@ -396,6 +396,7 @@
		CALL(sys_getrandom)
/* 385 */	CALL(sys_memfd_create)
		CALL(sys_bpf)
		CALL(sys_execveat)
#ifndef syscalls_counted
.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
#define syscalls_counted
+2 −7
Original line number Diff line number Diff line
@@ -220,9 +220,6 @@ static void note_page(struct pg_state *st, unsigned long addr, unsigned level, u
	static const char units[] = "KMGTPE";
	u64 prot = val & pg_level[level].mask;

	if (addr < USER_PGTABLES_CEILING)
		return;

	if (!st->level) {
		st->level = level;
		st->current_prot = prot;
@@ -308,15 +305,13 @@ static void walk_pgd(struct seq_file *m)
	pgd_t *pgd = swapper_pg_dir;
	struct pg_state st;
	unsigned long addr;
	unsigned i, pgdoff = USER_PGTABLES_CEILING / PGDIR_SIZE;
	unsigned i;

	memset(&st, 0, sizeof(st));
	st.seq = m;
	st.marker = address_markers;

	pgd += pgdoff;

	for (i = pgdoff; i < PTRS_PER_PGD; i++, pgd++) {
	for (i = 0; i < PTRS_PER_PGD; i++, pgd++) {
		addr = i * PGDIR_SIZE;
		if (!pgd_none(*pgd)) {
			walk_pud(&st, pgd, addr);
+2 −2
Original line number Diff line number Diff line
@@ -658,8 +658,8 @@ static struct section_perm ro_perms[] = {
		.start  = (unsigned long)_stext,
		.end    = (unsigned long)__init_begin,
#ifdef CONFIG_ARM_LPAE
		.mask   = ~PMD_SECT_RDONLY,
		.prot   = PMD_SECT_RDONLY,
		.mask   = ~L_PMD_SECT_RDONLY,
		.prot   = L_PMD_SECT_RDONLY,
#else
		.mask   = ~(PMD_SECT_APX | PMD_SECT_AP_WRITE),
		.prot   = PMD_SECT_APX | PMD_SECT_AP_WRITE,
+2 −2
Original line number Diff line number Diff line
@@ -1329,8 +1329,8 @@ static void __init kmap_init(void)
static void __init map_lowmem(void)
{
	struct memblock_region *reg;
	unsigned long kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
	unsigned long kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
	phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
	phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);

	/* Map all the lowmem memory banks. */
	for_each_memblock(memory, reg) {