mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-01 07:42:18 +00:00
phase 12
This commit is contained in:
parent
07d9c3128d
commit
fc69d2c030
35
arch/Kconfig
35
arch/Kconfig
@ -191,6 +191,14 @@ config HAVE_OPTPROBES
|
|||||||
config HAVE_KPROBES_ON_FTRACE
|
config HAVE_KPROBES_ON_FTRACE
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Since kretprobes modifies return address on the stack, the
|
||||||
|
stacktrace may see the kretprobe trampoline address instead
|
||||||
|
of correct one. If the architecture stacktrace code and
|
||||||
|
unwinder can adjust such entries, select this configuration.
|
||||||
|
|
||||||
config HAVE_FUNCTION_ERROR_INJECTION
|
config HAVE_FUNCTION_ERROR_INJECTION
|
||||||
bool
|
bool
|
||||||
|
|
||||||
@ -640,8 +648,7 @@ config ARCH_SUPPORTS_LTO_CLANG_THIN
|
|||||||
|
|
||||||
config HAS_LTO_CLANG
|
config HAS_LTO_CLANG
|
||||||
def_bool y
|
def_bool y
|
||||||
# Clang >= 11: https://github.com/ClangBuiltLinux/linux/issues/510
|
depends on CC_IS_CLANG && LD_IS_LLD && AS_IS_LLVM
|
||||||
depends on CC_IS_CLANG && CLANG_VERSION >= 110000 && LD_IS_LLD && AS_IS_LLVM
|
|
||||||
depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
|
depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
|
||||||
depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
|
depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
|
||||||
depends on ARCH_SUPPORTS_LTO_CLANG
|
depends on ARCH_SUPPORTS_LTO_CLANG
|
||||||
@ -983,6 +990,20 @@ config HAVE_ARCH_COMPAT_MMAP_BASES
|
|||||||
and vice-versa 32-bit applications to call 64-bit mmap().
|
and vice-versa 32-bit applications to call 64-bit mmap().
|
||||||
Required for applications doing different bitness syscalls.
|
Required for applications doing different bitness syscalls.
|
||||||
|
|
||||||
|
config PAGE_SIZE_LESS_THAN_64KB
|
||||||
|
def_bool y
|
||||||
|
depends on !ARM64_64K_PAGES
|
||||||
|
depends on !IA64_PAGE_SIZE_64KB
|
||||||
|
depends on !PAGE_SIZE_64KB
|
||||||
|
depends on !PARISC_PAGE_SIZE_64KB
|
||||||
|
depends on !PPC_64K_PAGES
|
||||||
|
depends on PAGE_SIZE_LESS_THAN_256KB
|
||||||
|
|
||||||
|
config PAGE_SIZE_LESS_THAN_256KB
|
||||||
|
def_bool y
|
||||||
|
depends on !PPC_256K_PAGES
|
||||||
|
depends on !PAGE_SIZE_256KB
|
||||||
|
|
||||||
# This allows to use a set of generic functions to determine mmap base
|
# This allows to use a set of generic functions to determine mmap base
|
||||||
# address by giving priority to top-down scheme only if the process
|
# address by giving priority to top-down scheme only if the process
|
||||||
# is not in legacy mode (compat task, unlimited stack size or
|
# is not in legacy mode (compat task, unlimited stack size or
|
||||||
@ -1279,6 +1300,9 @@ config HAVE_ARCH_PFN_VALID
|
|||||||
config ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
config ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config ARCH_SUPPORTS_PAGE_TABLE_CHECK
|
||||||
|
bool
|
||||||
|
|
||||||
config ARCH_SPLIT_ARG64
|
config ARCH_SPLIT_ARG64
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
@ -1291,6 +1315,13 @@ config ARCH_HAS_ELFCORE_COMPAT
|
|||||||
config ARCH_HAS_PARANOID_L1D_FLUSH
|
config ARCH_HAS_PARANOID_L1D_FLUSH
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config DYNAMIC_SIGFRAME
|
||||||
|
bool
|
||||||
|
|
||||||
|
# Select, if arch has a named attribute group bound to NUMA device nodes.
|
||||||
|
config HAVE_ARCH_NODE_DEV_GROUP
|
||||||
|
bool
|
||||||
|
|
||||||
source "kernel/gcov/Kconfig"
|
source "kernel/gcov/Kconfig"
|
||||||
|
|
||||||
source "scripts/gcc-plugins/Kconfig"
|
source "scripts/gcc-plugins/Kconfig"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
obj-y += kernel/ mm/
|
obj-y += kernel/ mm/
|
||||||
obj-$(CONFIG_MATHEMU) += math-emu/
|
obj-$(CONFIG_MATHEMU) += math-emu/
|
||||||
|
|
||||||
|
# for cleaning
|
||||||
|
subdir- += boot
|
||||||
|
@ -55,9 +55,6 @@ $(boot)/vmlinux.gz: vmlinux
|
|||||||
bootimage bootpfile bootpzfile: vmlinux
|
bootimage bootpfile bootpzfile: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||||
|
|
||||||
archclean:
|
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
|
||||||
|
|
||||||
archheaders:
|
archheaders:
|
||||||
$(Q)$(MAKE) $(build)=arch/alpha/kernel/syscalls all
|
$(Q)$(MAKE) $(build)=arch/alpha/kernel/syscalls all
|
||||||
|
|
||||||
|
@ -37,13 +37,15 @@ int audit_classify_syscall(int abi, unsigned syscall)
|
|||||||
{
|
{
|
||||||
switch(syscall) {
|
switch(syscall) {
|
||||||
case __NR_open:
|
case __NR_open:
|
||||||
return 2;
|
return AUDITSC_OPEN;
|
||||||
case __NR_openat:
|
case __NR_openat:
|
||||||
return 3;
|
return AUDITSC_OPENAT;
|
||||||
case __NR_execve:
|
case __NR_execve:
|
||||||
return 5;
|
return AUDITSC_EXECVE;
|
||||||
|
case __NR_openat2:
|
||||||
|
return AUDITSC_OPENAT2;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return AUDITSC_NATIVE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ albacore_init_arch(void)
|
|||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
|
||||||
size = initrd_end - initrd_start;
|
size = initrd_end - initrd_start;
|
||||||
memblock_free(__pa(initrd_start), PAGE_ALIGN(size));
|
memblock_free((void *)initrd_start, PAGE_ALIGN(size));
|
||||||
if (!move_initrd(pci_mem))
|
if (!move_initrd(pci_mem))
|
||||||
printk("irongate_init_arch: initrd too big "
|
printk("irongate_init_arch: initrd too big "
|
||||||
"(%ldK)\ndisabling initrd\n",
|
"(%ldK)\ndisabling initrd\n",
|
||||||
|
@ -376,12 +376,11 @@ thread_saved_pc(struct task_struct *t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned long
|
unsigned long
|
||||||
get_wchan(struct task_struct *p)
|
__get_wchan(struct task_struct *p)
|
||||||
{
|
{
|
||||||
unsigned long schedule_frame;
|
unsigned long schedule_frame;
|
||||||
unsigned long pc;
|
unsigned long pc;
|
||||||
if (!p || p == current || task_is_running(p))
|
|
||||||
return 0;
|
|
||||||
/*
|
/*
|
||||||
* This one depends on the frame size of schedule(). Do a
|
* This one depends on the frame size of schedule(). Do a
|
||||||
* "disass schedule" in gdb to find the frame size. Also, the
|
* "disass schedule" in gdb to find the frame size. Also, the
|
||||||
|
@ -80,7 +80,12 @@ init_rtc_epoch(void)
|
|||||||
static int
|
static int
|
||||||
alpha_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
alpha_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||||
{
|
{
|
||||||
mc146818_get_time(tm);
|
int ret = mc146818_get_time(tm);
|
||||||
|
|
||||||
|
if (ret < 0) {
|
||||||
|
dev_err_ratelimited(dev, "unable to read current time\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Adjust for non-default epochs. It's easier to depend on the
|
/* Adjust for non-default epochs. It's easier to depend on the
|
||||||
generic __get_rtc_time and adjust the epoch here than create
|
generic __get_rtc_time and adjust the epoch here than create
|
||||||
|
@ -535,6 +535,6 @@ do_work_pending(struct pt_regs *regs, unsigned long thread_flags,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
thread_flags = current_thread_info()->flags;
|
thread_flags = read_thread_flags();
|
||||||
} while (thread_flags & _TIF_WORK_MASK);
|
} while (thread_flags & _TIF_WORK_MASK);
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ srmcons_do_receive_chars(struct tty_port *port)
|
|||||||
} while((result.bits.status & 1) && (++loops < 10));
|
} while((result.bits.status & 1) && (++loops < 10));
|
||||||
|
|
||||||
if (count)
|
if (count)
|
||||||
tty_schedule_flip(port);
|
tty_flip_buffer_push(port);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
@ -488,3 +488,5 @@
|
|||||||
556 common landlock_restrict_self sys_landlock_restrict_self
|
556 common landlock_restrict_self sys_landlock_restrict_self
|
||||||
# 557 reserved for memfd_secret
|
# 557 reserved for memfd_secret
|
||||||
558 common process_mrelease sys_process_mrelease
|
558 common process_mrelease sys_process_mrelease
|
||||||
|
559 common futex_waitv sys_futex_waitv
|
||||||
|
560 common set_mempolicy_home_node sys_ni_syscall
|
||||||
|
@ -129,9 +129,7 @@ dik_show_trace(unsigned long *sp, const char *loglvl)
|
|||||||
extern char _stext[], _etext[];
|
extern char _stext[], _etext[];
|
||||||
unsigned long tmp = *sp;
|
unsigned long tmp = *sp;
|
||||||
sp++;
|
sp++;
|
||||||
if (tmp < (unsigned long) &_stext)
|
if (!is_kernel_text(tmp))
|
||||||
continue;
|
|
||||||
if (tmp >= (unsigned long) &_etext)
|
|
||||||
continue;
|
continue;
|
||||||
printk("%s[<%lx>] %pSR\n", loglvl, tmp, (void *)tmp);
|
printk("%s[<%lx>] %pSR\n", loglvl, tmp, (void *)tmp);
|
||||||
if (i > 40) {
|
if (i > 40) {
|
||||||
@ -192,7 +190,7 @@ die_if_kernel(char * str, struct pt_regs *regs, long err, unsigned long *r9_15)
|
|||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
do_exit(SIGSEGV);
|
make_task_dead(SIGSEGV);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_MATHEMU
|
#ifndef CONFIG_MATHEMU
|
||||||
@ -577,7 +575,7 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
|
|||||||
|
|
||||||
printk("Bad unaligned kernel access at %016lx: %p %lx %lu\n",
|
printk("Bad unaligned kernel access at %016lx: %p %lx %lu\n",
|
||||||
pc, va, opcode, reg);
|
pc, va, opcode, reg);
|
||||||
do_exit(SIGSEGV);
|
make_task_dead(SIGSEGV);
|
||||||
|
|
||||||
got_exception:
|
got_exception:
|
||||||
/* Ok, we caught the exception, but we don't want it. Is there
|
/* Ok, we caught the exception, but we don't want it. Is there
|
||||||
@ -632,7 +630,7 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
|
|||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
do_exit(SIGSEGV);
|
make_task_dead(SIGSEGV);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -165,7 +165,6 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
|
|||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & FAULT_FLAG_ALLOW_RETRY) {
|
|
||||||
if (fault & VM_FAULT_RETRY) {
|
if (fault & VM_FAULT_RETRY) {
|
||||||
flags |= FAULT_FLAG_TRIED;
|
flags |= FAULT_FLAG_TRIED;
|
||||||
|
|
||||||
@ -176,7 +175,6 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
|
|||||||
|
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
mmap_read_unlock(mm);
|
mmap_read_unlock(mm);
|
||||||
|
|
||||||
@ -204,7 +202,7 @@ do_page_fault(unsigned long address, unsigned long mmcsr,
|
|||||||
printk(KERN_ALERT "Unable to handle kernel paging request at "
|
printk(KERN_ALERT "Unable to handle kernel paging request at "
|
||||||
"virtual address %016lx\n", address);
|
"virtual address %016lx\n", address);
|
||||||
die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16);
|
die_if_kernel("Oops", regs, cause, (unsigned long*)regs - 16);
|
||||||
do_exit(SIGKILL);
|
make_task_dead(SIGKILL);
|
||||||
|
|
||||||
/* We ran out of memory, or some other thing happened to us that
|
/* We ran out of memory, or some other thing happened to us that
|
||||||
made us unable to handle the page fault gracefully. */
|
made us unable to handle the page fault gracefully. */
|
||||||
|
Loading…
Reference in New Issue
Block a user