freebsd-dev/sys/kern
Brandon Bergren 7821a820d0 [PowerPC] Implement Secure-PLT jump table processing for ppc32.
Due to clang and LLD's tendency to use a PLT for builtins, and as they
don't have full support for EABI, we sometimes have to deal with a PLT in
.ko files in a clang-built kernel.

As such, augment the in-kernel linker to support jump table processing.

As there is no particular reason to support lazy binding in kernel modules,
only implement Secure-PLT immediate binding.

As part of these changes, add elf_cpu_parse_dynamic() to the MD API of the
in-kernel linker (except on platforms that use raw object files.)

The new function will allow MD code to act on MD tags in _DYNAMIC.

Use this new function in the PowerPC MD code to ensure BSS-PLT modules using
PLT will be rejected during insertion, and to poison the runtime resolver to
ensure we get a clear panic reason if a call is made to the resolver.

Reviewed by:	jhibbits
Differential Revision:	https://reviews.freebsd.org/D22608
2019-12-24 15:56:24 +00:00
..
bus_if.m
capabilities.conf Add a shm_open2 syscall to support upcoming memfd_create 2019-09-25 17:59:15 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
genoffset.c Merge td_epochnest with td_no_sleeping. 2019-10-29 17:28:25 +00:00
genoffset.sh
imgact_aout.c Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
imgact_binmisc.c
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Copy out aux args after the argument and environment vectors. 2019-12-09 19:17:28 +00:00
imgact_shell.c
init_main.c schedlock 1/4 2019-12-15 21:11:15 +00:00
init_sysent.c Jail and capability mode for shm_rename; add audit support for shm_rename 2019-11-18 13:31:16 +00:00
kern_acct.c
kern_alq.c
kern_clock.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_clocksource.c
kern_condvar.c
kern_conf.c devfs: introduce a per-dev lock to protect ->si_devsw 2019-11-30 16:46:19 +00:00
kern_cons.c
kern_context.c
kern_cpu.c
kern_cpuset.c bitset: rename confusing macro NAND to ANDNOT 2019-12-13 09:32:16 +00:00
kern_ctf.c
kern_descrip.c fd: static-ize and devolatile openfiles 2019-12-11 23:09:12 +00:00
kern_dtrace.c
kern_dump.c [PPC64] Initial kernel minidump implementation 2019-10-14 13:04:04 +00:00
kern_environment.c
kern_et.c
kern_event.c
kern_exec.c Handle pagein clustering in vm_page_grab_valid() so that it can be used by 2019-12-15 02:00:32 +00:00
kern_exit.c procdesc: allow to collect status through wait(1) if process is traced 2019-11-25 18:33:21 +00:00
kern_fail.c Use callout(9) instead of deprecated timeout(9) for fail points. 2019-12-13 19:26:04 +00:00
kern_ffclock.c
kern_fork.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_hhook.c
kern_idle.c
kern_intr.c schedlock 4/4 2019-12-15 21:26:50 +00:00
kern_jail.c
kern_kcov.c
kern_khelp.c
kern_kthread.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_ktr.c
kern_ktrace.c
kern_linker.c Rewrite arm kernel stack unwind code to work when unwinding through modules. 2019-12-15 21:16:35 +00:00
kern_lock.c vfs: locking primitives which elide ->v_vnlock and shared locking disablement 2019-12-11 23:11:21 +00:00
kern_lockf.c vfs: introduce v_irflag and make v_type smaller 2019-12-08 21:30:04 +00:00
kern_lockstat.c
kern_loginclass.c
kern_malloc.c Handle large mallocs by going directly to kmem. Taking a detour through 2019-11-29 03:14:10 +00:00
kern_mbuf.c mbuf zones: take out the trash 2019-12-04 18:21:29 +00:00
kern_mib.c Create a new sysctl subtree, machdep.mitigations. Its purpose is to organize 2019-11-15 23:27:17 +00:00
kern_module.c
kern_mtxpool.c Mark some more hot global variables with __read_mostly. 2019-12-04 21:26:03 +00:00
kern_mutex.c mtx: eliminate recursion support from thread lock 2019-12-16 00:04:33 +00:00
kern_ntptime.c
kern_osd.c
kern_physio.c
kern_pmc.c
kern_poll.c schedlock 4/4 2019-12-15 21:26:50 +00:00
kern_priv.c
kern_proc.c Remove page locking from pmap_mincore(). 2019-10-16 22:03:27 +00:00
kern_procctl.c
kern_prot.c Remove the useless return value from proc_set_cred 2019-12-14 00:43:17 +00:00
kern_racct.c
kern_rangelock.c
kern_rctl.c
kern_resource.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_rmlock.c bitset: rename confusing macro NAND to ANDNOT 2019-12-13 09:32:16 +00:00
kern_rwlock.c
kern_sdt.c
kern_sema.c
kern_sendfile.c Record part of the owner struct thread pointer into busy_lock. 2019-11-24 19:12:23 +00:00
kern_sharedpage.c Fix the last few cases that grab without busy or valid. The grab functions must 2019-12-02 22:38:25 +00:00
kern_shutdown.c vfs: introduce v_irflag and make v_type smaller 2019-12-08 21:30:04 +00:00
kern_sig.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_switch.c schedlock 4/4 2019-12-15 21:26:50 +00:00
kern_sx.c sx: check for SX_LOCK_SHARED | SX_LOCK_WRITE_SPINNER when exclusive-locking 2019-12-05 13:43:44 +00:00
kern_synch.c kern_synch: Fix some UB 2019-12-24 06:08:29 +00:00
kern_syscalls.c add a sanity check to the system call registration code 2019-12-11 15:52:29 +00:00
kern_sysctl.c sysctl sysctls: wire old buf before output with sysctl lock 2019-11-25 07:38:27 +00:00
kern_tc.c
kern_thr.c schedlock 1/4 2019-12-15 21:11:15 +00:00
kern_thread.c schedlock 4/4 2019-12-15 21:26:50 +00:00
kern_time.c
kern_timeout.c Remove the deprecated timeout(9) interface. 2019-12-13 21:03:12 +00:00
kern_tslog.c
kern_ubsan.c
kern_umtx.c
kern_uuid.c
kern_xxx.c
ksched.c
link_elf_obj.c Apply mapping protections to preloaded kernel modules on amd64. 2019-10-18 13:56:45 +00:00
link_elf.c [PowerPC] Implement Secure-PLT jump table processing for ppc32. 2019-12-24 15:56:24 +00:00
linker_if.m
Make.tags.inc
Makefile sysent: Reduce duplication and improve readability. 2019-12-06 23:59:23 +00:00
makesyscalls.sh Restore the ability to set capenabled directly in syscalls.conf. 2019-09-30 20:58:29 +00:00
md4c.c
md5c.c
msi_if.m
p1003_1b.c
pic_if.m
posix4_mib.c
sched_4bsd.c schedlock 4/4 2019-12-15 21:26:50 +00:00
sched_ule.c Fix a bug in r355784. I missed a sched_add() call that needed to reacquire 2019-12-19 18:22:11 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c
subr_blist.c Simplify the processing a leaf mask to find big-enough ranges of set 2019-12-14 19:44:42 +00:00
subr_boot.c
subr_bufring.c
subr_bus_dma.c
subr_bus.c Create new wrapper function: bus_delayed_attach_children() 2019-12-13 19:39:33 +00:00
subr_busdma_bufalloc.c
subr_capability.c
subr_clock.c
subr_compressor.c
subr_counter.c
subr_coverage.c
subr_csan.c Disable KCSAN within a panic. 2019-11-21 13:59:01 +00:00
subr_devmap.c Print upper 32 bits in devmap table entries 2019-12-20 03:40:53 +00:00
subr_devstat.c Make devstat_end_transaction_bio() count BIO_ORDERED. 2019-12-06 18:39:05 +00:00
subr_disk.c
subr_dummy_vdso_tc.c
subr_early.c
subr_epoch.c Restore important comment in RCU/EPOCH support in FreeBSD after r355784. 2019-12-18 09:30:32 +00:00
subr_eventhandler.c
subr_fattime.c
subr_filter.c This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
subr_firmware.c Factor out check for mounted root file system. 2019-11-28 08:47:36 +00:00
subr_gtaskqueue.c schedlock 1/4 2019-12-15 21:11:15 +00:00
subr_hash.c
subr_hints.c
subr_intr.c
subr_kdb.c bitset: rename confusing macro NAND to ANDNOT 2019-12-13 09:32:16 +00:00
subr_kobj.c
subr_lock.c lockprof: use IPI-injecetd fences to fix hangs on stat dump and reset 2019-11-30 17:24:42 +00:00
subr_log.c
subr_mchain.c
subr_module.c
subr_msgbuf.c
subr_param.c
subr_pcpu.c schedlock 1/4 2019-12-15 21:11:15 +00:00
subr_pctrie.c
subr_pidctrl.c
subr_power.c
subr_prf.c
subr_prof.c
subr_rangeset.c
subr_rman.c
subr_rtc.c
subr_sbuf.c
subr_scanf.c
subr_sfbuf.c
subr_sglist.c
subr_sleepqueue.c schedlock 4/4 2019-12-15 21:26:50 +00:00
subr_smp.c smp: cast the read in quiesce_all_critical through void * 2019-11-30 19:33:02 +00:00
subr_stack.c Add debugging facility EPOCH_TRACE that checks that epochs entered are 2019-09-25 18:26:31 +00:00
subr_stats.c libstats: Improve ABI assertion. 2019-11-06 19:44:44 +00:00
subr_syscall.c
subr_taskqueue.c schedlock 1/4 2019-12-15 21:11:15 +00:00
subr_terminal.c kernel terminal should initialize fg and bg variables before calling TUNABLE_INT_FETCH 2019-09-26 07:19:26 +00:00
subr_trap.c schedlock 4/4 2019-12-15 21:26:50 +00:00
subr_turnstile.c schedlock 4/4 2019-12-15 21:26:50 +00:00
subr_uio.c
subr_unit.c kern/subr_unit: Rip srandomdev, random(3) out of dead code 2019-12-13 04:48:20 +00:00
subr_vmem.c Use a precise bit count for the slab free items in UMA. This significantly 2019-12-02 22:44:34 +00:00
subr_witness.c devfs: introduce a per-dev lock to protect ->si_devsw 2019-11-30 16:46:19 +00:00
sys_capability.c
sys_generic.c devfs: plug redundant bwillwrite avoidance 2019-10-05 17:44:33 +00:00
sys_getrandom.c
sys_pipe.c Fix handling of PIPE_EOF in the direct write path. 2019-11-11 20:44:30 +00:00
sys_procdesc.c procdesc: allow to collect status through wait(1) if process is traced 2019-11-25 18:33:21 +00:00
sys_process.c Define macro VM_MAP_ENTRY_FOREACH for enumerating the entries in a vm_map. 2019-10-08 07:14:21 +00:00
sys_socket.c
syscalls.c sysent: regenerate after r352747. 2019-09-26 15:41:10 +00:00
syscalls.master Jail and capability mode for shm_rename; add audit support for shm_rename 2019-11-18 13:31:16 +00:00
systrace_args.c sysent: regenerate after r354835 2019-11-18 23:31:12 +00:00
sysv_ipc.c
sysv_msg.c
sysv_sem.c
sysv_shm.c Simplify anonymous memory handling with an OBJ_ANON flag. This eliminates 2019-11-19 23:19:43 +00:00
tty_compat.c
tty_info.c Fix SIGINFO stack collection to ignore threads with swapped-out stacks. 2019-12-19 19:34:25 +00:00
tty_inq.c
tty_outq.c
tty_pts.c tty_pts: don't rely on tty header pollution for sys/mutex.h 2019-11-29 03:56:01 +00:00
tty_tty.c
tty_ttydisc.c
tty.c vfs: introduce v_irflag and make v_type smaller 2019-12-08 21:30:04 +00:00
uipc_accf.c
uipc_debug.c
uipc_domain.c Remove pfctlinput2(). It came from KAME and had never ever been in use. 2019-10-15 15:40:03 +00:00
uipc_ktls.c ktls_session zone: don't need to specify uma trash 2019-11-29 06:25:03 +00:00
uipc_mbuf2.c m_pulldown(): Change an if () panic() into a KASSERT(). 2019-11-06 22:40:19 +00:00
uipc_mbuf.c kTLS: Fix a bug where we would not encrypt anon data inplace. 2019-09-27 20:08:19 +00:00
uipc_mbufhash.c
uipc_mqueue.c vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
uipc_sem.c
uipc_shm.c Fix a mistake in r355765. We need to activate the page if it is not yet 2019-12-15 06:26:47 +00:00
uipc_sockbuf.c
uipc_socket.c Cleanup unneeded includes that crept in with r353292. 2019-10-09 16:59:42 +00:00
uipc_syscalls.c
uipc_usrreq.c Fix handling of empty SCM_RIGHTS messages. 2019-10-08 23:34:48 +00:00
vfs_acl.c
vfs_aio.c Port the NetBSD KCSAN runtime to FreeBSD. 2019-11-21 11:22:08 +00:00
vfs_bio.c schedlock 4/4 2019-12-15 21:26:50 +00:00
vfs_cache.c vfs: introduce v_irflag and make v_type smaller 2019-12-08 21:30:04 +00:00
vfs_cluster.c Do not use waitable allocation of pbuf when creating cluster for write. 2019-12-23 20:15:19 +00:00
vfs_default.c vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
vfs_export.c
vfs_extattr.c
vfs_hash.c
vfs_init.c vfs: add optional root vnode caching 2019-10-06 22:14:32 +00:00
vfs_lookup.c vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
vfs_mount.c vfs: add optional root vnode caching 2019-10-06 22:14:32 +00:00
vfs_mountroot.c Add variant of root_mount_hold() without allocation. 2019-11-21 21:59:35 +00:00
vfs_subr.c vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
vfs_syscalls.c Add kern_sync(9), and make kernel code call it instead of going 2019-12-12 18:45:31 +00:00
vfs_vnops.c vfs: introduce v_irflag and make v_type smaller 2019-12-08 21:30:04 +00:00
vnode_if.src