OpenBSD cvs log

created 2019-02-01T12:07:31Z
begin 2018-02-21T00:00:00Z
end 2018-02-22T00:00:00Z
path src/sys
commits 7

date 2018-02-21T00:04:41Z
author jsg
files src/sys/dev/pci/drm/i915_drm.h log diff annotate
message match linux whitespace in ioctl list

date 2018-02-21T05:19:11Z
author dlg
files src/sys/net/if_gre.c log diff annotate
message whitespace fixes

date 2018-02-21T05:20:17Z
author dlg
files src/sys/net/if_gre.c log diff annotate
message if egre takes the packet, it's done, don't fall through to l3 processing.

date 2018-02-21T09:30:02Z
author mpi
files src/sys/kern/uipc_syscalls.c log diff annotate
message Call socreate() before falloc() in sys_socket().

This is similar to what we do in sys_socketpair() and will allow us
to grab the KERNEL_LOCK() only after having created a socket.

This time with correct non-blocking check.

Tested by landry@, previous diff ok tedu@

date 2018-02-21T19:24:15Z
author guenther
files src/sys/arch/amd64/amd64/cpu.c log diff annotate
src/sys/arch/amd64/amd64/gdt.c log diff annotate
src/sys/arch/amd64/amd64/ log diff annotate
src/sys/arch/amd64/amd64/identcpu.c log diff annotate
src/sys/arch/amd64/amd64/lapic.c log diff annotate
src/sys/arch/amd64/amd64/locore.S log diff annotate
src/sys/arch/amd64/amd64/locore0.S log diff annotate
src/sys/arch/amd64/amd64/machdep.c log diff annotate
src/sys/arch/amd64/amd64/pmap.c log diff annotate
src/sys/arch/amd64/amd64/spl.S log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
src/sys/arch/amd64/amd64/vector.S log diff annotate
src/sys/arch/amd64/conf/ld.script log diff annotate
src/sys/arch/amd64/include/asm.h log diff annotate
src/sys/arch/amd64/include/cpu.h log diff annotate
src/sys/arch/amd64/include/cpu_full.h log diff annotate
src/sys/arch/amd64/include/cpufunc.h log diff annotate
src/sys/arch/amd64/include/frame.h log diff annotate
src/sys/arch/amd64/include/frameasm.h log diff annotate
src/sys/arch/amd64/include/gdt.h log diff annotate
src/sys/arch/amd64/include/pmap.h log diff annotate
src/sys/arch/amd64/include/specialreg.h log diff annotate
message Meltdown: implement user/kernel page table separation.

On Intel CPUs which speculate past user/supervisor page permission checks,
use a separate page table for userspace with only the minimum of kernel code
and data required for the transitions to/from the kernel (still marked as
supervisor-only, of course):
- the IDT (RO)
- three pages of kernel text in the .kutext section for interrupt, trap,
and syscall trampoline code (RX)
- one page of kernel data in the .kudata section for TLB flush IPIs (RW)
- the lapic page (RW, uncachable)
- per CPU: one page for the TSS+GDT (RO) and one page for trampoline
stacks (RW)

When a syscall, trap, or interrupt takes a CPU from userspace to kernel the
trampoline code switches page tables, switches stacks to the thread's real
kernel stack, then copies over the necessary bits from the trampoline stack.
On return to userspace the opposite occurs: recreate the iretq frame on the
trampoline stack, switch stack, switch page tables, and return to userspace.

mlarkin@ implemented the pmap bits and did 90% of the debugging, diagnosing
issues on MP in particular, and drove the final push to completion.
Many rounds of testing by naddy@, sthen@, and others
Thanks to Alex Wilson from Joyent for early discussions about trampolines
and their data requirements.
Per-CPU page layout mostly inspired by DragonFlyBSD.

ok mlarkin@ deraadt@

date 2018-02-21T21:09:57Z
author mikeb
files src/sys/arch/amd64/amd64/via.c log diff annotate
src/sys/arch/i386/i386/via.c log diff annotate
message branches: 1.28.2;
Mark VIA padlock as capable of dealing with ESN

There are no actual changes to the driver since the software crypto
driver is called to handle authentication operations.

This enabled padlock to be used when tunnels are setup with iked(8).

Tested by and OK fcambus

date 2018-02-21T22:20:19Z
author dlg
files src/sys/net/if_gre.c log diff annotate
message implement nvgre(4) based on rfc7637 aka NVGRE

NVGRE is short for Network Virtualization Using Generic Routing

it provides an overlay ethernet network with multiple ip peers,
rather than a tunnel to a single peer like egre(4) provides. unlike
egre the vnetid is mandantory and always 24 bits. it offers similar
functionality to vxlan(4).