summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/alpha
AgeCommit message (Collapse)Author
2017-06-05Split early startup code out of locore.S into locore0.S. Adjust linkTheo de Raadt
run so that this locore0.o is always at the start of the executable. But randomize the link order of all other .o files in the kernel, so that their exec/rodata/data/bss segments land all over the place. Late during kernel boot, smash the startup code with traps so that it does not point to the other randomly placed code. It has be smashed, because alpha (insecurely in my view) runs in the KSEG0 space. As a result, the internal layout of every newly build bsd kernel is different from past kernels. Internal relative offsets are not known to an outside attacker. The only known offsets are in the startup code, which is gone. Ramdisk kernels cannot be compiled like this, because they are gzip'd. When the internal pointer references change, the compression dictionary bloats and results in poorer compression.
2017-05-29Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead.Martin Pieuchot
ok visa@, kettenis@
2017-05-27Implement copyin32(9) for alpha.Mark Kettenis
2017-04-30Rename Debugger() into db_enter().Martin Pieuchot
Using a name with the 'db_' prefix makes it invisible from the dynamic profiler. ok deraadt@, kettenis@, visa@
2017-04-30Unifdef KGDB.Martin Pieuchot
It doesn't compile und hasn't been working during the last decade. ok kettenis@, deraadt@
2017-04-27Unifdef KADB.Martin Pieuchot
ok deraadt@
2017-04-20Hook up mutex(9) to witness(4).Visa Hankala
2017-02-28Switch geteblks()'s size argument from int to size_t. It's called withMartin Natano
unsigned variables as argument in most places anyway. Decrease the chance of signedness/range mismatch issues. ok stefan
2017-02-12Split up fork1():Philip Guenther
- FORK_THREAD handling is a totally separate function, thread_fork(), that is only used by sys___tfork() and which loses the flags, func, arg, and newprocp parameters and gains tcb parameter to guarantee the new thread's TCB is set before the creating thread returns - fork1() loses its stack and tidptr parameters Common bits factor out: - struct proc allocation and initialization moves to thread_new() - maxthread handling moves to fork_check_maxthread() - setting the new thread running moves to fork_thread_start() The MD cpu_fork() function swaps its unused stacksize parameter for a tcb parameter. luna88k testing by aoyama@, alpha testing by dlg@ ok mpi@
2017-01-21p_comm is the process's command and isn't per thread, so move it fromPhilip Guenther
struct proc to struct process. ok deraadt@ kettenis@
2017-01-13Ansify cpu_sysctl() on alpha, arm, arm64, luna88k and sparc64.Frederic Cambus
OK mpi@
2016-10-27revert 1.41 now that subr_percpu is using ncpusfound instead of ncpus.David Gwynne
2016-10-27increment ncpus when a cpu is attached, not when its booted.David Gwynne
fixes percpu allocations, like visa@ just did on mips64.
2016-10-19The first argument to process_domem() and its uio_procp should be curprocPhilip Guenther
ok kettenis@
2016-10-09Apply consistency to forever loops with continue and NOTREACHEDTom Cosgrove
Same thought from kettenis@, ok krw@ phessler@ millert@
2016-10-08Various printf claim to report the PID, so actually report that and not the TIDPhilip Guenther
Build testing assistance from deraadt@
2016-10-04The new thread's userspace v0, a3, and a4 registers are updated inPhilip Guenther
child_return() like on other archs, so cpu_fork() doesn't need to touch them. ok kettenis@ deraadt@
2016-09-27typoTheo de Raadt
2016-09-25Make a move towards ending 4 decades of kernel snooping.Theo de Raadt
Add sysctl kern.allowkmem (default 0) which controls the ability to open /dev/mem or /dev/kmem at securelevel > 0. Over 15 years we converted 99% of utilities in the tree to operate on sysctl-nodes (either by themselves or via code hiding in the guts of -lkvm). pstat -d and -v & procmap are affected and continued use of them will require kern.allowkmem=1 in /etc/sysctl.conf. acpidump (and it's buddy sendbug) are affected, but we'll work out a solution soon. There will be some impact in ports. ok kettenis guenther
2016-09-19ansify function definitionsJasper Lievisse Adriaanse
ok guenther@ millert@
2016-09-19fix whitespace at EOLJasper Lievisse Adriaanse
2016-09-18option INSECURE is obsoleteTheo de Raadt
2016-09-15all pools have their ipl set via pool_setipl, so fold it into pool_init.David Gwynne
the ioff argument to pool_init() is unused and has been for many years, so this replaces it with an ipl argument. because the ipl will be set on init we no longer need pool_setipl. most of these changes have been done with coccinelle using the spatch below. cocci sucks at formatting code though, so i fixed that by hand. the manpage and subr_pool.c bits i did myself. ok tedu@ jmatthew@ @ipl@ expression pp; expression ipl; expression s, a, o, f, m, p; @@ -pool_init(pp, s, a, o, f, m, p); -pool_setipl(pp, ipl); +pool_init(pp, s, a, ipl, f, m, p);
2016-09-04Remove support for tape block devices. Nobody mount(8)s tapes any longer.Christian Weisgerber
ok deraadt@ guenther@
2016-09-02Add switch(4) cdev entryKazuya Goda
ok deraadt@ yasuoka@ reyk@
2016-08-15normalize some commentsTed Unangst
2016-08-01bring the light of ansi to a few more filesTed Unangst
2016-06-13rename _splraise to splraiseDavid Gwynne
gets us a bit closer to an MI splraise api.
2016-06-08remove obsolete raid from namtoblk tables. from Artturi AlmTed Unangst
2016-06-07consistently set ipls on pmap pools.David Gwynne
this is a step toward making ipls unconditionaly on pools. ok deraadt@ kettenis@
2016-05-23Place a cpu-dependent trap/illegal instruction over the remainder of theTheo de Raadt
sigtramp page, so that it will generate a nice kernel fault if touched. While here, move most of the sigtramps to the .rodata segment, because they are not executed in the kernel. Also some preparation for sliding the actual sigtramp forward (will need some gdb changes) ok mlarkin kettenis
2016-05-21hand-massage sendsig() and sys_sigreturn() to be much more similar.Theo de Raadt
ok guenther kettenis
2016-05-15Implement TCB_{GET,SET} using PAL_{rd,wr}unique.Philip Guenther
Inline asm from NetBSD testing deraadt@
2016-05-11Add the sigcontext cookie clearing block, which was missed in the previousTheo de Raadt
commit.
2016-05-10SROP mitigation. sendsig() stores a (per-process ^ &sigcontext) cookieTheo de Raadt
inside the sigcontext. sigreturn(2) checks syscall entry was from the exact PC addr in the (per-process ASLR) sigtramp, verifies the cookie, and clears it to prevent sigcontext reuse. not yet tested on landisk, sparc, *88k, socppc. ok kettenis
2016-04-27Stop using DDB_REGS.Martin Pieuchot
ok dlg@
2016-04-25remove systraceTed Unangst
2016-03-30Better support for alphas without all IEEE-mode instructionsAndrew Fresh
From Miod Vallat I trust miod deraadt@
2016-03-19Reduces the noise around the global ``ticks'' variable by renamingMartin Pieuchot
all the local ones to ``nticks''. ok stefan@, deraadt@
2016-02-26Remove stale RAIDframe entries from chrtoblktbl.natano
While there truncate the tables to the minimum required size; chrtoblk() and blktochr() are designed to handle a table shorter than cdevsw. "Looks good to me" deraadt@
2016-02-26Make alpha and sh 2038-safe. Now that we have 64-bit time_t, we don'tmmcc
need to ignore the hardware clock when it reports a year > 2037. Irony noted. both ok millert, alpha ok deraadt
2016-02-22Move #include <sys/mutex.h> from pmap.c to pmap.h, like every other archsLandry Breuil
using struct mutex in pmap.h do. Fixes net-snmp on alpha. ok deraadt@
2015-12-04add a missing mtx_leave before a panic to give ddb/reboot a betterJonathan Gray
chance of working. ok deraadt@
2015-10-23Allocate a new major for tap(4) also note that pseudo-device tun is for tapClaudio Jeker
as well. OK dlg@ mpi@
2015-10-21Do not call uvm_swap_finicrypt_all() a second time in dumpsys().Martin Pieuchot
ok tedu@, deraadt@, miod@
2015-10-01Make the alpha pmap (more) mpsafe by protecting both the pmap itself and theMark Kettenis
pv lists with a mutex. This should make pmap_enter(9), pmap_remove(9) and pmap_page_protect(9) safe to use without holding the kernel lock. This largely reverts rev. 1.75, but now of course the pmap locks are defined to actually call mtx_enter(9) and mtx_leave(9). ok visa@
2015-09-28Mechanical changes from manual buf set up to readdisksector().Kenneth R Westerback
ok deraadt@
2015-09-21Fix membar positioning in mtx_enter_try() and (critically!) mtx_leave()Philip Guenther
Problem noticed and initial diff by kettenis@ ok kettenis@ visa@ dlg@
2015-09-13intr_barrier(9) for alpha.Mark Kettenis
2015-09-08Give the pool page allocator backends more sensible names. We now have:Mark Kettenis
* pool_allocator_single: single page allocator, always interrupt safe * pool_allocator_multi: multi-page allocator, interrupt safe * pool_allocator_multi_ni: multi-page allocator, not interrupt-safe ok deraadt@, dlg@