OpenBSD src changes summary for 2016-05-15 to 2016-05-22 inclusive ==================================================================
distrib/armv7 distrib/miniroot distrib/sets etc/MAKEDEV.common etc/etc.alpha/MAKEDEV etc/etc.amd64/MAKEDEV etc/etc.armish/MAKEDEV etc/etc.armv7/MAKEDEV etc/etc.armv7/MAKEDEV.md etc/etc.armv7/disktab etc/etc.hppa/MAKEDEV etc/etc.i386/MAKEDEV etc/etc.landisk/MAKEDEV etc/etc.loongson/MAKEDEV etc/etc.macppc/MAKEDEV etc/etc.octeon/MAKEDEV etc/etc.sgi/MAKEDEV etc/etc.socppc/MAKEDEV etc/etc.sparc64/MAKEDEV etc/etc.zaurus/MAKEDEV etc/rc lib/libc lib/libedit lib/libexpat lib/libfuse lib/libkvm lib/librthread lib/libssl lib/libutil libexec/ld.so libexec/spamd regress/lib regress/sys sbin/mount sbin/mount_msdos sbin/sysctl share/man share/mk sys/arch/alpha/alpha sys/arch/alpha/include sys/arch/amd64/amd64 sys/arch/amd64/stand/efiboot sys/arch/arm/arm sys/arch/arm/include sys/arch/arm/mainbus sys/arch/arm/simplebus sys/arch/armv7/armv7 sys/arch/armv7/conf sys/arch/armv7/exynos sys/arch/armv7/imx sys/arch/armv7/include sys/arch/armv7/omap sys/arch/armv7/stand/efiboot sys/arch/armv7/sunxi sys/arch/armv7/vexpress sys/arch/hppa/hppa sys/arch/i386/i386 sys/arch/i386/include sys/arch/m88k/m88k sys/arch/macppc/conf sys/arch/macppc/dev sys/arch/macppc/macppc sys/arch/mips64/mips64 sys/arch/octeon/dev sys/arch/octeon/octeon sys/arch/sh/include sys/arch/sh/sh sys/arch/socppc/socppc sys/arch/sparc/sparc sys/arch/sparc64/dev sys/arch/sparc64/sparc64 sys/ddb sys/dev sys/dev/hid sys/dev/i2c sys/dev/ic sys/dev/ofw sys/dev/pci sys/dev/pckbc sys/dev/sdmmc sys/dev/usb sys/isofs/cd9660 sys/isofs/udf sys/kern sys/msdosfs sys/net sys/net80211 sys/netinet sys/netinet6 sys/ntfs sys/sys sys/ufs/ext2fs sys/ufs/ffs sys/uvm usr.bin/kdump usr.bin/sendbug usr.bin/skeyinit usr.bin/ssh usr.sbin/crunchgen usr.sbin/eeprom usr.sbin/httpd usr.sbin/ntpd usr.sbin/pkg_add usr.sbin/pppd usr.sbin/smtpd == distrib =========================================================== 01/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib armv7 ~ miniroot/Makefile.inc ~ ramdisk/Makefile ~ ramdisk/install.md > Copy dtb files to miniroots and install disk. Increase the ramdisk size > and force long filenames on the first mount of fat 16 filesystems so > this works. > U-boot scripts have not yet been changed to load these files. > ok kettenis@ (jsg@) ~ miniroot/Makefile.inc + miniroot/boot.cmd > use a simple u-boot script for all the miniroots that loads with fdt > ok patrick@ kettenis@ (jsg@) ~ miniroot/am335x/Makefile ~ miniroot/beagle/Makefile ~ miniroot/cubie/Makefile ~ miniroot/cubox/Makefile ~ miniroot/nitrogen/Makefile ~ miniroot/panda/Makefile ~ miniroot/wandboard/Makefile > Remove LOADADDR definitions, the default ${loadaddr} set by u-boot is > now used. (jsg@) ~ ramdisk/install.md > use a common simple u-boot script that loads with fdt (jsg@) ~ ramdisk/install.md > force long filenames on the initial fat16 mount here as well > dtb filenames are longer than 8.3 (jsg@) miniroot ~ install.sub > Move code to create unique filenames and to prepare a file > to be sent to root on reboot into separate functions. > positive feedback deraadt > OK krw, sthen, halex (rpe@) ~ install.sub > Log questions and answers during install/upgrade in a format that can be > used as a response file for autoinstall(8). The result is emailed to the > root user on next boot. Passwords are not logged. > positive feedback deraadt, jung > OK krw, halex, sthen (rpe@) ~ install.sub > Rename variable $action (which is actually global) to AI_MODE. > While there, (re)set AI_MODE and AI_SERVER at the start of the > installer script. > OK krw@ (rpe@) sets ~ lists/base/md.zaurus ~ lists/comp/md.zaurus > sync (deraadt@) ~ lists/man/mi > sync (deraadt@) == etc =============================================================== 02/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/etc MAKEDEV.common ~ MAKEDEV.common > Default /dev/video node to root.wheel 600 because this should not be > available wide open. there should be some access model either via a > group or fbtab. This will cause a decision to be made. > ok millert (deraadt@) etc.alpha/MAKEDEV ~ etc.alpha/MAKEDEV > sync (deraadt@) ~ etc.alpha/MAKEDEV > sync (deraadt@) etc.amd64/MAKEDEV ~ etc.amd64/MAKEDEV > sync (deraadt@) ~ etc.amd64/MAKEDEV > sync (deraadt@) etc.armish/MAKEDEV ~ etc.armish/MAKEDEV > sync (deraadt@) ~ etc.armish/MAKEDEV > sync (deraadt@) etc.armv7/MAKEDEV ~ etc.armv7/MAKEDEV > sync (deraadt@) ~ etc.armv7/MAKEDEV > sync (deraadt@) ~ etc.armv7/MAKEDEV > regen (kettenis@) etc.armv7/MAKEDEV.md ~ etc.armv7/MAKEDEV.md > Add /dev/openprom. (kettenis@) etc.armv7/disktab ~ etc.armv7/disktab > Copy dtb files to miniroots and install disk. Increase the ramdisk size > and force long filenames on the first mount of fat 16 filesystems so > this works. > U-boot scripts have not yet been changed to load these files. > ok kettenis@ (jsg@) etc.hppa/MAKEDEV ~ etc.hppa/MAKEDEV > sync (deraadt@) ~ etc.hppa/MAKEDEV > sync (deraadt@) etc.i386/MAKEDEV ~ etc.i386/MAKEDEV > sync (deraadt@) ~ etc.i386/MAKEDEV > sync (deraadt@) etc.landisk/MAKEDEV ~ etc.landisk/MAKEDEV > sync (deraadt@) ~ etc.landisk/MAKEDEV > sync (deraadt@) etc.loongson/MAKEDEV ~ etc.loongson/MAKEDEV > sync (deraadt@) ~ etc.loongson/MAKEDEV > sync (deraadt@) etc.macppc/MAKEDEV ~ etc.macppc/MAKEDEV > sync (deraadt@) ~ etc.macppc/MAKEDEV > sync (deraadt@) etc.octeon/MAKEDEV ~ etc.octeon/MAKEDEV > sync (deraadt@) ~ etc.octeon/MAKEDEV > sync (deraadt@) etc.sgi/MAKEDEV ~ etc.sgi/MAKEDEV > sync (deraadt@) ~ etc.sgi/MAKEDEV > sync (deraadt@) etc.socppc/MAKEDEV ~ etc.socppc/MAKEDEV > sync (deraadt@) ~ etc.socppc/MAKEDEV > sync (deraadt@) etc.sparc64/MAKEDEV ~ etc.sparc64/MAKEDEV > sync (deraadt@) ~ etc.sparc64/MAKEDEV > sync (deraadt@) etc.zaurus/MAKEDEV ~ etc.zaurus/MAKEDEV > sync (deraadt@) ~ etc.zaurus/MAKEDEV > sync (deraadt@) rc ~ rc > Use the -F flag of install(1) to ensure the file's content is flushed to > disk. > OK deraadt (rpe@) == lib =============================================================== 03/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib libc ~ arch/powerpc/Makefile.inc ~ arch/powerpc/SYS.h ~ arch/powerpc/sys/brk.S ~ arch/powerpc/sys/sbrk.S ~ arch/powerpc/sys/sigprocmask.S ~ arch/powerpc/sys/tfork_thread.S > TIB conversion is complete, so set errno in the syscall stub and eliminate > __cerror > ok ketternis@ (guenther@) ~ arch/powerpc/gen/setjmp.S ~ arch/powerpc/gen/sigsetjmp.S > Add END() to match ENTRY() macros > ok kettenis@ (guenther@) - arch/alpha/sys/cerror.S ~ arch/alpha/Makefile.inc ~ arch/alpha/SYS.h > Eliminate cerror: use PAL_rdunique to get the TCB address directly > ok deraadt@ kettenis@ (guenther@) ~ arch/alpha/SYS.h > ...and delete the GP setup. Should have been in previous commit > (guenther@) ~ regex/engine.c > Fix a one-byte buffer underflow (read access only). > This change touches code that only runs when REG_BASIC is given and > the regular expression is anchored with ^ _and_ uses backreferences. > The segfault could only be triggered when the ^ anchor was inside > a leading () subexpression quantified with *. > OK martijn@ > Patch also proofread by Pedro Giffuni <pfg at FreeBSD dot org>. (schwarze@) ~ gen/daemon.3 > Reduce quadruple negation to double negation; > from Edgar Pettijohn <edgar at pettijohn minus web dot com>. > OK jmc@ deraadt@ > While here, remove two instances of inconsistent future tense. (schwarze@) - arch/sh/sys/cerror.S ~ arch/sh/Makefile.inc ~ arch/sh/SYS.h ~ arch/sh/sys/brk.S ~ arch/sh/sys/sbrk.S ~ arch/sh/sys/sigprocmask.S ~ arch/sh/sys/sigsuspend.S ~ arch/sh/sys/tfork_thread.S > Save and restore 'gbr' register when enter/leaving the kernel, and use > it for the TCB pointer. Eliminate __cerror. > "looks good" kettenis@, testing and ok deraadt@ (guenther@) ~ sys/Makefile.inc > Add ASM_NOERR for syscalls that never fail and thus don't need the errno > setting logic...which can significantly reduce the size of the stub on > some archs; 20 syscalls get a trim with this. > in snaps for a bit and ok deraadt@ (guenther@) ~ gen/sysctl.3 > no more v6only; (jmc@) ~ Symbols.list > Delete the _SDA_BASE and _SDA2_BASE symbols: they're unnecessary in > shared libraries...and I misspelled them anyway (guenther@) - arch/powerpc/sys/cerror.S > Oh right, actually delete this now that __cerror is unused (guenther@) ~ arch/powerpc/gen/setjmp.S ~ arch/powerpc/gen/sigsetjmp.S > Add XOR cookies for r1 (stack) and lr. Switch from calling obsolete > sig{block,setmask} to directly using the sigprocmask syscall. Rewrite > sig{set,long}jmp based on {set,long}jmp to avoid the deprecated > store/load-multiple instructions. > in snaps; ok deraadt@ (guenther@) libedit ~ el.c ~ el.h ~ histedit.h ~ read.c ~ read.h > Move the declaration of the function pointer type el_rfunc_t > from the private header "read.h" to the public header <histedit.h>. > That's not an interface change, it was already used and documented > publicly, merely not properly declared. > Improve encapsulation: Make el_read a pointer to an opaque struct > in struct editline, such that "read.h" no longer needs to be included > from "el.h" but only from the two files using it, read.c and el.c. > Only pass the required el_read_t to el_read_{s,g}etfn(), > do not pass the full struct editline. > OK czarkoff@, > also proofread by Christian Heckendorf <mbie at ulmus dot me>. (schwarze@) ~ editline.3 > Fix the prototype used by EL_GETCFN, mention the associated typedef name, > document the return values, expand the list of affected functions, warn > against using EL_GETCFN, and clarify some wording and notation. (schwarze@) ~ editline.3 > Simple sync with NetBSD, mostly to avoid confusion of arguments and > return values. (schwarze@) ~ editline.3 ~ editrc.5 > Document el_wpush(3) and fix the description of el_push(3). > Improve precision in the description of the "bind" builtin command. > Tweak terminology to better match editline(7). (schwarze@) ~ chared.c ~ chared.h ~ common.c ~ el.c ~ read.c ~ read.h > Improve modularization at the chared/read boundary, no functional change. > Stop the read.c module from poking the el_chared.c_macro data > structure that used to belong to the chared.c module. Given that > no other module, not even chared itself, is using that data, move it > into the read modules's own opaque data structure, struct el_read_t. > That gets rid of one struct, one #define, one struct member, and one > function argument in the chared.h interface. > OK czarkoff@ (schwarze@) libexpat ~ lib/xmlparse.c TAGGED OPENBSD_5_9 > backport from -current: > revision 1.14 > date: 2016/05/13 05:29:17; author: rpointel; state: Exp; lines: +6 -6; > commitid: 1LXLCy8ctha0206G; > re-add the check we have in revision 1.12. > ok jca@ (thanks). > revision 1.13 > date: 2016/05/09 19:32:01; author: rpointel; state: Exp; lines: +19 -11; > commitid: i2Dv4qjzJTkY7kSK; > update libexpat to 2.1.1. > ok deraadt@ (thanks to sebastian[@]pipping[.]org for information). > (jasper@) ~ lib/xmlparse.c TAGGED OPENBSD_5_8 > backport from -current: > revision 1.14 > date: 2016/05/13 05:29:17; author: rpointel; state: Exp; lines: +6 -6; > commitid: 1LXLCy8ctha0206G; > re-add the check we have in revision 1.12. > ok jca@ (thanks). > revision 1.13 > date: 2016/05/09 19:32:01; author: rpointel; state: Exp; lines: +19 -11; > commitid: i2Dv4qjzJTkY7kSK; > update libexpat to 2.1.1. > ok deraadt@ (thanks to sebastian[@]pipping[.]org for information). > revision 1.12 > date: 2015/08/26 19:36:23; author: miod; state: Exp; lines: +5 -1; > commitid: ortBpOgLQ63sWGUG; > More overflow checks in XML_GetBuffer(), adapted from FreeBSD security > advisory FreeBSD-SA-15:20. Most of them were already fixed by niallo@'s > work, > which unfortunately got removed in r1.10 /-: > With help from doug@ > revision 1.11 > date: 2015/08/26 19:33:17; author: miod; state: Exp; lines: +12 -2; > commitid: wldaISldyE7ZDar6; > Put back local changes (revisions 1.2 to 1.4), which unfortunately got lost > in > the last upgrade. > ok deraadt@ (jasper@) libfuse ~ fuse_main.3 > update links; from ray (jmc@) libkvm ~ kvm_proc.c > Make amaps use less kernel memory > This is achieved by grouping amap slots into chunks that are allocated > on-demand by pool(9). Endless "fltamapcopy" loops because of kmem > shortage should be solved now. The kmem savings are also important to later > enable vmm(4) to use larged shared memory mappings for guest VM RAM. > This adapts libkvm also because the amap structure layout has changed. > Testing and fix of libkvm glitch in initial diff by tb@ > Feedback and "time to get this in" kettenis@ (stefan@) ~ kvm_proc.c > Revert previous: breaks i386 and powerpc, probably all non-PMAP_DIRECT > archs (guenther@) librthread ~ Symbols.map > Delete the _SDA_BASE and _SDA2_BASE symbols: they're unnecessary in > shared libraries...and I misspelled them anyway (guenther@) libssl ~ src/crypto/asn1/a_d2i_fp.c > Fix a short-read bug in the previous version of asn1_d2i_read_bio > The outer while() loop is missing, so we only read up to chunk_max bytes. > (bcook@) libutil ~ login_fbtab.3 > Remove obsolete caveat. OK deraadt@ (millert@) == libexec =========================================================== 04/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec ld.so ~ tib.c ~ amd64/archdep.h ~ arm/archdep.h ~ hppa/archdep.h ~ i386/archdep.h ~ sh/archdep.h ~ sparc/archdep.h ~ sparc64/archdep.h > fix types for mmap wrappers. A few whitespace cleanups snuck in. > ok guenther (deraadt@) ~ malloc.c > ld.so can now be entered by multiple threads via _dl_{allocate,free}_tib(), > so do locking in ld.so's malloc subsystem, (re)using the existing > _dl_thread_kern_{stop,go}() callbacks. > problem diagnosed by jsing@ in the 'go' port; fix tested there and by > semarie@ in the 'rust' port (guenther@) ~ tib.c > Give the caller a chance to handle the failure if unable to allocate > the TIB for a new thread > ok jca@ millert@ deraadt@ (guenther@) ~ sparc64/rtld_machine.c > Temporarily make the PLT writable when we're initializing the magic slots > or doing non-lazy relocation processing. > ok guenther@ (kettenis@) ~ sparc/rtld_machine.c > mul/div/rem replacement should happen without PROT_EXEC > ok guenther (deraadt@) ~ i386/rtld_machine.c > Ignore the listed protection (which may contain X) when making page > writeable temporary. > As pointed out by kettenis, discussed with guenther (deraadt@) spamd ~ spamd.c > tyop (jca@) == regress =========================================================== 05/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress lib ~ libedit/read/glue.c ~ libedit/read/test_getcmd.c > cope with simplified chared/read interface (schwarze@) sys ~ net/pf_forward/ping6_mtu.py ~ net/pf_forward/ping_mtu.py ~ net/pf_fragment/frag.py ~ net/pf_fragment/frag6.py ~ net/pf_fragment/frag6_cutnew.py ~ net/pf_fragment/frag6_cutold.py ~ net/pf_fragment/frag6_dropnew.py ~ net/pf_fragment/frag6_dropold.py ~ net/pf_fragment/frag6_ext.py ~ net/pf_fragment/frag_cutnew.py ~ net/pf_fragment/frag_cutold.py ~ net/pf_fragment/frag_dropnew.py ~ net/pf_fragment/frag_dropold.py ~ net/pf_fragment/ping6_cksum.py ~ net/pf_fragment/ping6_mtu_1300.py ~ net/pf_fragment/ping_cksum.py ~ net/pf_fragment/ping_mtu_1300.py ~ net/pf_fragment/udp6_cksum.py ~ net/pf_fragment/udp_cksum.py ~ netinet6/frag6/frag6.py ~ netinet6/frag6/frag6_ext.py ~ netinet6/frag6/frag6_opt.py ~ netinet6/frag6/frag6_overatomic.py ~ netinet6/frag6/frag6_overdrop.py ~ netinet6/frag6/frag6_overhead.py ~ netinet6/frag6/frag6_overhead0.py ~ netinet6/frag6/frag6_overtail.py ~ netinet6/frag6/frag6_padding.py ~ netinet6/frag6/frag6_permute.py ~ netinet6/frag6/frag6_refrag.py ~ netinet6/frag6/frag6_shortatomic.py ~ netinet6/frag6/frag6_timeout.py ~ netinet6/frag6/frag6_udpatomic.py ~ netinet6/frag6/frag6_udpheader.py ~ netinet6/frag6/frag6_udppayload.py ~ netinet6/frag6/frag6_zerofirst.py ~ netinet6/frag6/frag6_zerosecond.py ~ netinet6/rh0/rh0_empty.py ~ netinet6/rh0/rh0_final.py ~ netinet6/rh0/rh0_frag2.py ~ netinet6/rh0/rh0_frag_empty.py ~ netinet6/rh0/rh0_frag_final.py ~ netinet6/rh0/rh0_frag_route.py ~ netinet6/rh0/rh0_none.py ~ netinet6/rh0/rh0_route.py > Fix tests: Restrict getpid() to lower 16 bit so that it can still > be used as packet id. Now scapy calls nexthopmtu with this name > explicitly in icmp structure. (bluhm@) == sbin ============================================================== 06/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin mount ~ mount.c > Remove the -x flag from mount_msdos and always assume the execute bit > for readable directories, while making it subject to the mask option > (-m in mount_msdos), so it is still possible to mount with > non-executable directories, but with semantics that are easier to > comprehend. > This makes directory listings with default mount options work again. > ok deraadt@ (natano@) mount_msdos ~ mount_msdos.8 ~ mount_msdos.c > Remove the -x flag from mount_msdos and always assume the execute bit > for readable directories, while making it subject to the mask option > (-m in mount_msdos), so it is still possible to mount with > non-executable directories, but with semantics that are easier to > comprehend. > This makes directory listings with default mount options work again. > ok deraadt@ (natano@) ~ mount_msdos.8 ~ mount_msdos.c > no more -x; (jmc@) sysctl ~ sysctl.8 > Remove sysctl net.inet6.ip6.v6only > This sysctl is a no-op, read-only since it was introduced. There are no > plans to support IPv4-mapped addresses on OpenBSD, thus this sysctl is > meaningless. > Noticed by djm@, ok claudio@ mpi@ sthen@ henning@ (jca@) == share ============================================================= 07/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man4/iic.4 + man4/pcfrtc.4 > pcfrtc(4) (kettenis@) ~ man4/fuse.4 > i seemingly commented out an Xr in SEE ALSO in -r1.9 - correct > that now. > from ray (jmc@) ~ man9/fb_setup.9 > uncomment the Xr for fuse_main(3); from ray (jmc@) ~ man5/bsd.port.mk.5 > Deprecate PLIST_DB. Prefer PLIST_REPOSITORY (same semantics, except that > ARCH gets appended automatically) (espie@) ~ man9/srp_enter.9 ~ man9/srpl_rc_init.9 > rework the srp api so it takes an srp_ref struct that the caller provides. > the srp_ref struct is used to track the location of the callers > hazard pointer so later calls to srp_follow and srp_enter already > know what to clear. this in turn means most of the caveats around > using srps go away. specifically, you can now: > - switch cpus while holding an srp ref > - ie, you can sleep while holding an srp ref > - you can take and release srp refs in any order > the original intent was to simplify use of the api when dealing > with complicated data structures. the caller now no longer has to > track the location of the srp a value was fetched from, the srp_ref > effectively does that for you. > srp lists have been refactored to use srp_refs instead of srpl_iter > structs. > this is in preparation of using srps inside the ART code. ART is a > complicated data structure, and lookups require overlapping holds > of srp references. > ok mpi@ jmatthew@ (dlg@) ~ man9/srp_enter.9 > rename srp_finalize to srp_gc_finalize (dlg@) ~ man5/port-modules.5 > Document MODQT_LRELEASE > ok sthen@ zhuk@ (jca@) ~ man4/ip6.4 > no more v6only; (jmc@) ~ man4/ip6.4 > revert this part of my last commit: sthen points out that this text > concerns sockets, and is still present; (jmc@) mk ~ bsd.lib.mk > make 'make clean' clean up the .ldadd file, in case LIBREBUILD was set > ok deraadt@ (guenther@) == sys =============================================================== 08/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/alpha/alpha ~ cpu.c ~ vm_machdep.c > Implement TCB_{GET,SET} using PAL_{rd,wr}unique. > Inline asm from NetBSD > testing deraadt@ (guenther@) ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/alpha/include ~ alpha_cpu.h ~ proc.h ~ tcb.h > Implement TCB_{GET,SET} using PAL_{rd,wr}unique. > Inline asm from NetBSD > testing deraadt@ (guenther@) arch/amd64/amd64 ~ acpi_machdep.c ~ acpi_wakecode.S > Use int3 padding instead of nop in the ACPI resume trampoline, as it is > certain no intentional nop sled is required here. > ok deraadt@ (mlarkin@) ~ machdep.c > Pad end of code in the MP trampoline with int3 instead of 0x0 as it is > certain we don't want an intentional sled here either. > ok deraadt@ (mlarkin@) ~ vmm_support.S > place .globals further up, to reduce confusion (deraadt@) ~ mptramp.S > default to int3 padding if we ever introduce ENTRY/NENTRY pads here > ok deraadt@ (mlarkin@) ~ acpi_machdep.c > add a check for the acpi trampoline data page to match the code check > already there. (mlarkin@) ~ acpi_machdep.c > tabs vs spaces (mlarkin@) ~ spl.S > Please int3 guards around unused debug splx versions so we can stop > paying attention to those specific aligns. > ok mlarkin (deraadt@) ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/amd64/stand/efiboot ~ efiboot.c > Give the 32-bit and 64-bit EFI boatloaders different names such that we can > tell which one we're using. > ok deraadt@, krw@ (kettenis@) arch/arm/arm ~ bus_dma.c > POSTREAD needs to flush the D-cache since speculative loads might (and do) > bring back cache lines after a PREREAD. Eliminates random data corruption > on my CuBox-i4Pro. > ok jsg@ (kettenis@) ~ sig_machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) ~ conf.c + openprom.c > Implement openprom(4) for armv7. > ok deraadt@ (kettenis@) arch/arm/include ~ atomic.h > Implement membar(9) for armv5. As there are no barrier instructions in > armv5 this is just a "memory" clobber hint to the compiler. > ok kettenis@ (jsg@) ~ conf.h + openpromio.h > Implement openprom(4) for armv7. > ok deraadt@ (kettenis@) arch/arm/mainbus ~ mainbus.c ~ mainbus.h > Introduce a per-platform init_mainbus() hook that can be used to attach > platform-specific devices to mainbus before we start walking the FDT. > ok patrick@ (kettenis@) arch/arm/simplebus ~ simplebus.c > Use OF_is_compatible(9) here. > ok patrick@ (kettenis@) arch/armv7/armv7 ~ armv7_machdep.h ~ platform.c > Introduce a per-platform init_mainbus() hook that can be used to attach > platform-specific devices to mainbus before we start walking the FDT. > ok patrick@ (kettenis@) ~ armv7var.h > Remove the PHYTEC phyFLEX support code, patrick says he no longer > has the hardware for the eval kit. > ok patrick@ (jsg@) ~ armv7_machdep.c > For FDT-based boots, look for a "openbsd,bootduid" property of the /chosen > node. If it is present, copy its value into the bootduid variable for > DUID-based boot disk selection. > ok patrick@, jsg@ (kettenis@) arch/armv7/conf ~ GENERIC > Enable the pcf8523 RTC on Hummingboard and CuBox-i. > ok patrick@ (kettenis@) ~ RAMDISK > Copy dtb files to miniroots and install disk. Increase the ramdisk size > and force long filenames on the first mount of fat 16 filesystems so > this works. > U-boot scripts have not yet been changed to load these files. > ok kettenis@ (jsg@) ~ GENERIC ~ RAMDISK > Dynamically attach imxiic(4) and use the FDT to enumerate devices on i2c > busses. Users of the CuBox-i and Hummingboard now need to boot with an FDT > to see the RTC. > ok jsg@, patrick@ (kettenis@) ~ files.armv7 > Implement openprom(4) for armv7. > ok deraadt@ (kettenis@) arch/armv7/exynos ~ exynos_machdep.c > add init_mainbus() hooks for the other armv7 platforms (jsg@) arch/armv7/imx ~ imxesdhc.c > Map the ADMA2 descriptor table use BUS_DMA_COHERENT and add a missing > bus_dmamap_sync(9). Doesn't really fix anything, but adding the missing > sync makes the code more correct. Using BUS_DMA_COHERENT avoids some > cache flushes. (kettenis@) ~ imxiic.c > Make this actually work. This makes the following changes: > - Move most of the bus setup stuff to imxiic_i2c_acquire_bus() > - Move the teardown to imxiic_i2c_release_bus() > - Always clear the IIF flag > - Allow cmd and data for write operations. > Some i2c operations are still rejected, but this works well enough to use > pcfrtc(4). > ok patrick@ (kettenis@) ~ imx.c ~ imxiic.c > Enable the pcf8523 RTC on Hummingboard and CuBox-i. > ok patrick@ (kettenis@) ~ imxuart.c > Remove unused probe function. > ok patrick@ (kettenis@) ~ imx_machdep.c > Introduce a per-platform init_mainbus() hook that can be used to attach > platform-specific devices to mainbus before we start walking the FDT. > ok patrick@ (kettenis@) ~ imx.c ~ imx_machdep.c ~ imxehci.c ~ imxenet.c ~ imxesdhc.c > Remove the PHYTEC phyFLEX support code, patrick says he no longer > has the hardware for the eval kit. > ok patrick@ (jsg@) ~ imxiic.c > Change the identification string to "nxp,pcf8523" as this is what is stored > in the FDT. (kettenis@) ~ files.imx ~ imx.c ~ imxiic.c > Dynamically attach imxiic(4) and use the FDT to enumerate devices on i2c > busses. Users of the CuBox-i and Hummingboard now need to boot with an FDT > to see the RTC. > ok jsg@, patrick@ (kettenis@) arch/armv7/include + openpromio.h > Implement openprom(4) for armv7. > ok deraadt@ (kettenis@) arch/armv7/omap ~ omap_machdep.c > add init_mainbus() hooks for the other armv7 platforms (jsg@) ~ ommmc.c > Add a workaround for software reset described in the TI docs where we > have to poll for software reset bits to be set after writing before > polling for them to clear. This seems to resolve problems with ommmc > sometimes not attaching properly with recent u-boot versions. Adapted > from FreeBSD svn rev 275950. > ok kettenis@ (jsg@) arch/armv7/stand/efiboot ~ Makefile ~ efiboot.c ~ efiboot.h ~ exec.c + fdt.c + fdt.h > Add support for passing an FDT. The bootloader will update the "bootargs" > property of the "/chosen" node to pass arguments to the kernel. (kettenis@) ~ Makefile ~ efiboot.c ~ efiboot.h ~ exec.c ~ fdt.c ~ fdt.h > Enable -Wall -Werror. Fix warnings uncovered by this. > Set board IDs for i.IMX6 boards based on the "compatible" property of the > root node for now to ease the transition to full FDT support in the > kernel. (kettenis@) ~ exec.c ~ fdt.c ~ libsa.h ~ self_reloc.c > Fix a few more warnings such that this compiles again. (kettenis@) ~ efiboot.c > Match compatible strings for utilite which identifies as "cm-fx6" in > fdt/u-boot, and nitrogen6x which shares a board id with sabre lite but > has a different compatible string. > ok patrick@ kettenis@ (jsg@) ~ fdt.c > Make fdt_node_add_property() behave like fdt_node_set_property() if the > property already exists. (kettenis@) ~ efiboot.c ~ efidev.c + disk.h > Set "openbsd.bootduid" property of "/chosen" to the DUID of the boot disk. > ok patrick@, jsg@ (kettenis@) ~ efiboot.c > Attempt to allocate 32MB at the lowest address that is aligned on a 256MB > border. Our kernel currently relies on being loaded at the start of > physical > memory. Hopefully this algorithm achieves that. In the future I hope to > make it possible to load the kernel at any 256MB aligned border such that > the algorithm works even if the lowest 32MB are not available. (kettenis@) ~ efiboot.c > Add compatible string to board id mappings for almost all of the other > board ids we match on. > ok patrick@ (jsg@) arch/armv7/sunxi ~ sunxi_machdep.c > add init_mainbus() hooks for the other armv7 platforms (jsg@) arch/armv7/vexpress ~ vexpress_machdep.c > add init_mainbus() hooks for the other armv7 platforms (jsg@) arch/hppa/hppa ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/i386/i386 ~ acpi_wakecode.S > Use int3 padding instead of nop in the ACPI resume trampoline, as it is > certain no intentional nop sled is required here. > ok deraadt@ (mlarkin@) ~ autoconf.c > spaces -> tabs (mlarkin@) ~ autoconf.c > fix perms (previous cleanup commit introduced part of an unrelated change) > (mlarkin@) ~ autoconf.c ~ cpu.c ~ hibernate_machdep.c ~ machdep.c ~ mptramp.s > Split i386 mp hatch trampoline into code and data pages, and protect each > with proper W^X policy. The same thing was done for amd64 late last year, > catching i386 up now. Diff has been in snaps for a few days with no > reported fallout. > ok deraadt@ (mlarkin@) ~ acpi_machdep.c ~ acpi_wakecode.S ~ hibernate_machdep.c ~ autoconf.c ~ machdep.c > split the ACPI resume trampoline into code and data pages, and protect > with proper permissions. Same treatment was done on amd64 last year, i386 > is catching up. > This diff has been in snaps for a few days, no regressions reported. > ok deraadt@ (mlarkin@) ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar > (deraadt@) arch/i386/include ~ mpbiosvar.h > Split i386 mp hatch trampoline into code and data pages, and protect each > with proper W^X policy. The same thing was done for amd64 late last year, > catching i386 up now. Diff has been in snaps for a few days with no > reported fallout. > ok deraadt@ (mlarkin@) arch/m88k/m88k ~ sig_machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/macppc/conf ~ files.macppc > Add a thermal management framework for macppc which controls the fan speed > based on the temperature sensor values. A driver can register it fans or > temperature sensors there. Ported from FreeBSD. > ok deraadt kettenis (mglocker@) arch/macppc/dev + thermal.c + thermal.h > Add a thermal management framework for macppc which controls the fan speed > based on the temperature sensor values. A driver can register it fans or > temperature sensors there. Ported from FreeBSD. > ok deraadt kettenis (mglocker@) ~ smu.c > Hook up smu(4) to the thermal management framework. > ok kettenis (mglocker@) ~ thermal.c > Ooops, fix the OpenBSD tag. (mglocker@) arch/macppc/macppc ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/mips64/mips64 ~ sendsig.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/octeon/dev ~ cn30xxpip.c ~ cn30xxpipreg.h ~ if_cnmac.c > Disable dynamic short buffering to make all RX data land on buffers > taken from the packet data pool. (visa@) ~ if_cnmac.c > Fix the previous commit which made work queue entries get released too > early. octeon_eth_recv() will release them in case of packet drop. (visa@) ~ if_cnmac.c > panic() if an incoming packet does not consist of one buffer. This > makes the number of buffers visible. (visa@) ~ if_cnmac.c ~ if_cnmacvar.h > Make the TX path of cnmac(4) MP-safe and add some ifq oactive logic. > Feedback from dlg@, ok mpi@ (visa@) arch/octeon/octeon ~ autoconf.c > Accept cnmac as a valid rootdev from uboot on octeon. > Example: rootdev=/dev/cnmac0 > Patch from Kim Lidstrom, thanks! (visa@) arch/sh/include ~ frame.h ~ locore.h ~ proc.h ~ tcb.h > Save and restore 'gbr' register when enter/leaving the kernel, and use > it for the TCB pointer. Eliminate __cerror. > "looks good" kettenis@, testing and ok deraadt@ (guenther@) arch/sh/sh ~ db_interface.c ~ sh_machdep.c > Save and restore 'gbr' register when enter/leaving the kernel, and use > it for the TCB pointer. Eliminate __cerror. > "looks good" kettenis@, testing and ok deraadt@ (guenther@) ~ sh_machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/socppc/socppc ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/sparc/sparc ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar. > ok guenther kettenis (deraadt@) arch/sparc64/dev ~ vpci.c > Use OF_is_compatible(9). Simplifies the code and should make pci within > a guest domain on a Fujitsu M10 work. (kettenis@) arch/sparc64/sparc64 ~ openfirm.c > Implement OF_is_compatible(9). (kettenis@) ~ machdep.c > hand-massage sendsig() and sys_sigreturn() to be much more similar > (deraadt@) ddb ~ db_structinfo.c > <sys/localedef.h> isn't needed for ddb structinfo > ok millert@ deraadt@ schwarze@ (guenther@) dev ~ softraid_crypto.c > remove VOP_CLOSE and vput that will be handled in the epilogue. > part of a diff by bytevolcano. ok jung (tedu@) ~ rnd.c ~ rndvar.h > Change the random event buffer from a queue to an endless ring. This way > we don't drop any events when the queue is full. They are instead mixed > into previous events. > The mixing function selected is addition instead of xor to reduce the > possibility that new values effectively erase existing ones. > Convert some types to u_int to ensure defined overflow. > ok deraadt djm (tedu@) ~ cons.c ~ cons.h > Allow sendsyslog(2) with LOG_CONS even when /dev/console has not > been opened during init(8). Only log with cnwrite() if cn_devvp > exists, otherwise use cnputc() as fallback. While there move extern > declarations to dev/cons.h. > input and OK deraadt@ (bluhm@) ~ softraid_crypto.c > Remove another erroneous VOP_CLOSE/vput, which was missed with the last > commit. While here, also be consistent with the goto labels used. (jsing@) dev/hid ~ hidms.c > Use the new input functions of wsmouse in mouse and touchscreen drivers. > ok kettenis@ (bru@) dev/i2c + pcf8523.c > Driver for the NXP PCF8523 Real Time Clock. (kettenis@) ~ files.i2c > Add pcfrtc(4). (kettenis@) ~ pcf8523.c > Attempt to clear the OS flag when we attach. (kettenis@) ~ pcf8523.c > Change the identification string to "nxp,pcf8523" as this is what is stored > in the FDT. (kettenis@) dev/ic ~ nvme.c > check we allocated the cq, not the sq, after trying to allocate the cq > found by NONAKA Kimihiro while he was porting nvme to netbsd. (dlg@) dev/ofw ~ fdt.c ~ openfirm.h > Introduce OF_is_compatible(9), a convenience function to check the > "compatible" > property of an OFW/FDT node. > ok deraadt@, pactrick@ (kettenis@) ~ fdt.c > Implement openprom(4) for armv7. > ok deraadt@ (kettenis@) dev/pci ~ if_xge.c > enable reception and transmission of jumbo frames. > xge can go up to 9622 bytes in a frame. support for rx ring moderation > is coming. > from marisa emerson (dlg@) ~ if_iwm.c > In iwm(4), add bit-polling in Rx-DMA init code path. > According to a comment in iwlwifi: > * Clearing FH_MEM_RCSR_CHNL0_CONFIG_REG to 0 turns off Rx DMA. > * Driver should poll FH_MEM_RSSR_RX_STATUS_REG for > * FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (bit 24) before continuing. > ok kettenis@ (stsp@) ~ if_iwm.c ~ if_iwmreg.h > Fix several nitpicks in iwm(4). > Move some declarations to if_iwmreg.h so we can use iwm_phy_db_* > prototypes. > Remove redundant declaration of iwm_send_phy_db_data(). > Remove pointless iwm_fw_alive(); just call iwm_post_alive() directly. > Simplify iwm_prepare_card_hw() and iwm_mvm_add_sta(). > Return timeout error from iwm_apm_init(). > Print a message when init (i.e. boot) firmware fails to load. > Remove some commented-out code which wouldn't compile anyway. > Move iwm_mvm_tx_fifo to if_iwmreg.h to match better where Linux puts it. > ok kettenis@ mpi@ (stsp@) ~ pcidevs > Add Xeon-D devices. Move one item that was out of order to the right place > and fix a typo in an earlier E5 device ID. (mlarkin@) ~ pcidevs_data.h ~ pcidevs.h > regen (mlarkin@) ~ pcidevs > Add ids found in x1 carbon 2016: > - GMM (intel skylake general mixture model) > - ISH (intel 100 series integrated sensor hub) > - RTS525A (realtek card reader, not supported by rtsx(4)) (reyk@) ~ pcidevs.h ~ pcidevs_data.h > sync (reyk@) dev/pckbc ~ pms.c > Use the new input functions of wsmouse in mouse and touchscreen drivers. > ok kettenis@ (bru@) dev/sdmmc ~ sdhc.c > Sync with the ADMA2 implementation in imxesdhc(4): > Map the ADMA2 descriptor table use BUS_DMA_COHERENT and add a missing > bus_dmamap_sync(9). Doesn't really fix anything, but adding the missing > sync makes the code more correct. Using BUS_DMA_COHERENT avoids some > cache flushes on architectures that implement it. (kettenis@) dev/usb ~ uvideo.c > Plug some gaping holes in the v4l2 ioctl interfaces that would leak kernel > memory to a local user. Found by Patrick Keshisian. Fix a potential > integer overflow issue in related code while I'm there. > ok mglocker@, deraadt@ (kettenis@) ~ uvideo.c TAGGED OPENBSD_5_9 > Plug some gaping holes in the v4l2 ioctl interfaces that would leak kernel > memory to a local user. Found by Patrick Keshisian. Fix a potential > integer overflow issue in related code while I'm there. > ok mglocker@, deraadt@ (kettenis@) ~ uvideo.c TAGGED OPENBSD_5_8 > Plug some gaping holes in the v4l2 ioctl interfaces that would leak kernel > memory to a local user. Found by Patrick Keshisian. Fix a potential > integer overflow issue in related code while I'm there. > ok mglocker@, deraadt@ (kettenis@) ~ usb.c ~ usb_subr.c ~ usbdivar.h TAGGED OPENBSD_5_8 > Cache vendor, product and serial info for each usb device. This allows > ioctl(USB_DEVICEINFO) not to issue any further requests to gather > information. Thus reducing stress on connected usb devices. > This fixes an issue where usbdevs called in a loop causes a USB mass > storage device to halt operation. > Adapted from a similar commit in NetBSD. > ok mpi@ (patrick@) ~ usbdevs TAGGED OPENBSD_5_8 > Hello LTE Airprime/Sierra Aircard 313U, Netgear/Sierra Aircard 770S > (chris@) ~ usbdevs.h ~ usbdevs_data.h TAGGED OPENBSD_5_8 > resync (chris@) ~ uvideo.c TAGGED OPENBSD_5_8 > Fix pasto; v4l2_buf.flags = V4L2_MEMORY_MMAP -> V4L2_BUF_FLAG_MAPPED. > From Patrick Keshishian, thanks! (mglocker@) ~ usb_subr.c TAGGED OPENBSD_5_8 > Free the cache if the string cannot be retrieved. This allows the > fallback method to actually do its work and look up the strings via > the vendor and product id. > Regression noticed and ok tb@, ok mpi@ (patrick@) isofs/cd9660 ~ cd9660_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) isofs/udf ~ udf_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) kern ~ kern_pledge.c ~ vfs_syscalls.c > remove chroot(2) from allowed syscalls under pledge(2). > please note that chrooted process are still possible with pledge(2), but > only > if the chroot(2) is done *before* calling pledge(2). Once pledged, no more > chroot(2) call are permitted. (semarie@) ~ syscalls.master > Document NOLOCK, from Michal Mazurek. (mpi@) ~ init_main.c ~ subr_log.c > Backout the previous fix for the sendsyslog(2) with LOG_CONS solution. > Permanently holding /dev/console open in the kernel works only until > init(8) calls revoke(2). After that the console device vnode cannot > be used anymore. It still resulted in a hanging init(8) if it tried > to syslog(3) something. With the backout also dmesg -s works again. > (bluhm@) ~ subr_log.c ~ subr_prf.c ~ tty.c > Allow sendsyslog(2) with LOG_CONS even when /dev/console has not > been opened during init(8). Only log with cnwrite() if cn_devvp > exists, otherwise use cnputc() as fallback. While there move extern > declarations to dev/cons.h. > input and OK deraadt@ (bluhm@) ~ uipc_syscalls.c > Remove unnecessary cast of buflen to u_int in sockargs(). This was > missed when buflen was promoted to size_t. OK tedu@ (millert@) ~ kern_srp.c > rework the srp api so it takes an srp_ref struct that the caller provides. > the srp_ref struct is used to track the location of the callers > hazard pointer so later calls to srp_follow and srp_enter already > know what to clear. this in turn means most of the caveats around > using srps go away. specifically, you can now: > - switch cpus while holding an srp ref > - ie, you can sleep while holding an srp ref > - you can take and release srp refs in any order > the original intent was to simplify use of the api when dealing > with complicated data structures. the caller now no longer has to > track the location of the srp a value was fetched from, the srp_ref > effectively does that for you. > srp lists have been refactored to use srp_refs instead of srpl_iter > structs. > this is in preparation of using srps inside the ART code. ART is a > complicated data structure, and lookups require overlapping holds > of srp references. > ok mpi@ jmatthew@ (dlg@) ~ kern_srp.c > rename srp_finalize to srp_gc_finalize (dlg@) ~ subr_log.c > Use constty and cn_devvp for checking wether to use cnwrite(). That > makes console redirection with senssyslog(2) and LOG_CONS work > again. Also merge the two if else if else blocks into one. > OK deraadt@ (bluhm@) ~ subr_log.c > Kill trailing whitespaces. (bluhm@) ~ subr_log.c > All msg buf counters are long, so lmin(9) should be used for them. > OK deraadt@ natano@ (bluhm@) ~ subr_disk.c > Let setroot() pick the boot disk based on the DUID provided in bootduid if > a boot disk has not been selected by its caller. > ok jsing@, millert@ (kettenis@) ~ subr_disk.c > Remove dead assignment/unused variable. (jsing@) ~ subr_disk.c ~ kern_sysctl.c > Cleanup some of the DUID code and refactor for readability. > ok krw@ kettenis@ (jsing@) ~ subr_disk.c > Fix logic bug in DUID generation - we want to generate DUIDs until we have > one that is not a duplicate and not a zero DUID. > ok krw@ (jsing@) msdosfs ~ msdosfs_vnops.c > by default, files were made executable. that does not make sense today. > noone should be executing a binary from a msdos filesystem, considering > the mountpoint tracking permission mode model > ok natano krw (deraadt@) ~ msdosfs_vnops.c ~ msdosfsmount.h > Remove the -x flag from mount_msdos and always assume the execute bit > for readable directories, while making it subject to the mask option > (-m in mount_msdos), so it is still possible to mount with > non-executable directories, but with semantics that are easier to > comprehend. > This makes directory listings with default mount options work again. > ok deraadt@ (natano@) ~ msdosfs_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) net ~ bpf.c ~ if.c ~ if_vlan.c ~ rtable.c > rework the srp api so it takes an srp_ref struct that the caller provides. > the srp_ref struct is used to track the location of the callers > hazard pointer so later calls to srp_follow and srp_enter already > know what to clear. this in turn means most of the caveats around > using srps go away. specifically, you can now: > - switch cpus while holding an srp ref > - ie, you can sleep while holding an srp ref > - you can take and release srp refs in any order > the original intent was to simplify use of the api when dealing > with complicated data structures. the caller now no longer has to > track the location of the srp a value was fetched from, the srp_ref > effectively does that for you. > srp lists have been refactored to use srp_refs instead of srpl_iter > structs. > this is in preparation of using srps inside the ART code. ART is a > complicated data structure, and lookups require overlapping holds > of srp references. > ok mpi@ jmatthew@ (dlg@) ~ if_ethersubr.c > Remove some superflous if_get(9)/if_put(9) dances now that ARP input > routines are call directly by ether_input(). > ok visa@, dlg@ (mpi@) net80211 ~ ieee80211_input.c ~ ieee80211_node.c ~ ieee80211_proto.c > In hostap mode, don't re-use association IDs (AIDs) of nodes which are > still lingering in the node cache. This could cause an AID to be assigned > twice, once to a newly associated node and once to a different node in > COLLECT cache state (i.e. marked for future eviction from the node cache). > Drivers (e.g. rt2860) may use AIDs to keep track of nodes in firmware > tables and get confused when AIDs aren't unique across the node cache. > The symptom observed with rt2860 were nodes stuck at 1 Mbps Tx rate since > the duplicate AID made the driver perform Tx rate (AMRR) accounting on > the wrong node object. > To find out if a node is associated we now check the node's cache state, > rather than comparing the node's AID against zero. An AID is assigned when > a node associates and it lasts until the node is eventually purged from the > node cache (previously, the AID was made available for re-use when the node > was placed in COLLECT state). There is no need to be stingy with AIDs since > the number of possible AIDs exceeds the maximum number of nodes in the > cache. > Problem found by Nathanael Rensen. > Fix written by Nathanael and myself. Tested by Nathanael. > Comitting now to get this change tested across as many drivers as possible. > (stsp@) ~ ieee80211_node.c ~ ieee80211_var.h > Add a wireless driver capability flag for devices which scan 2GHz and 5GHz > bands in a single scan offload request. This will be used by iwm(4) soon. > ok kettenis@, earlier version ok phessler@ (stsp@) netinet ~ ip_carp.c > rework the srp api so it takes an srp_ref struct that the caller provides. > the srp_ref struct is used to track the location of the callers > hazard pointer so later calls to srp_follow and srp_enter already > know what to clear. this in turn means most of the caveats around > using srps go away. specifically, you can now: > - switch cpus while holding an srp ref > - ie, you can sleep while holding an srp ref > - you can take and release srp refs in any order > the original intent was to simplify use of the api when dealing > with complicated data structures. the caller now no longer has to > track the location of the srp a value was fetched from, the srp_ref > effectively does that for you. > srp lists have been refactored to use srp_refs instead of srpl_iter > structs. > this is in preparation of using srps inside the ART code. ART is a > complicated data structure, and lookups require overlapping holds > of srp references. > ok mpi@ jmatthew@ (dlg@) ~ if_ether.c > Move the code to update an ARP cache into its own function. > ok visa@ (mpi@) ~ if_ether.c ~ if_ether.h > Remove some superflous if_get(9)/if_put(9) dances now that ARP input > routines are call directly by ether_input(). > ok visa@, dlg@ (mpi@) netinet6 ~ nd6.c > Completely skip link-layer address resolution and NUD on gif(4). > Tested by naddy@ (mpi@) ~ udp6_output.c > Do not check if source address is available when the UDP6 socket is bound > to [::]. We should be able to send from a socket bound to [::] while using > sockets bound to specified addresses for reception. > Spotted with regress/usr.sbin/syslogd/args-client-bind-only6.pl test case. > "makes sense to me" millert@, ok benno@, ok bluhm@ (vgross@) ~ in6.h ~ in6_proto.c ~ ip6_input.c ~ ip6_output.c ~ ip6_var.h > Remove sysctl net.inet6.ip6.v6only > This sysctl is a no-op, read-only since it was introduced. There are no > plans to support IPv4-mapped addresses on OpenBSD, thus this sysctl is > meaningless. > Noticed by djm@, ok claudio@ mpi@ sthen@ henning@ (jca@) ntfs ~ ntfs_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) sys ~ systm.h > Backout the previous fix for the sendsyslog(2) with LOG_CONS solution. > Permanently holding /dev/console open in the kernel works only until > init(8) calls revoke(2). After that the console device vnode cannot > be used anymore. It still resulted in a hanging init(8) if it tried > to syslog(3) something. With the backout also dmesg -s works again. > (bluhm@) ~ srp.h > rework the srp api so it takes an srp_ref struct that the caller provides. > the srp_ref struct is used to track the location of the callers > hazard pointer so later calls to srp_follow and srp_enter already > know what to clear. this in turn means most of the caveats around > using srps go away. specifically, you can now: > - switch cpus while holding an srp ref > - ie, you can sleep while holding an srp ref > - you can take and release srp refs in any order > the original intent was to simplify use of the api when dealing > with complicated data structures. the caller now no longer has to > track the location of the srp a value was fetched from, the srp_ref > effectively does that for you. > srp lists have been refactored to use srp_refs instead of srpl_iter > structs. > this is in preparation of using srps inside the ART code. ART is a > complicated data structure, and lookups require overlapping holds > of srp references. > ok mpi@ jmatthew@ (dlg@) ~ srp.h > rename srp_finalize to srp_gc_finalize (dlg@) ~ disk.h > Cleanup some of the DUID code and refactor for readability. > ok krw@ kettenis@ (jsing@) ~ mount.h > Remove the -x flag from mount_msdos and always assume the execute bit > for readable directories, while making it subject to the mask option > (-m in mount_msdos), so it is still possible to mount with > non-executable directories, but with semantics that are easier to > comprehend. > This makes directory listings with default mount options work again. > ok deraadt@ (natano@) ufs/ext2fs ~ ext2fs_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) ufs/ffs ~ ffs_vfsops.c > When pulling an msdos formated umass stick during mount while the > usb stack was busy, the kernel could trigger an uvm fault. There > is a race between vop_generic_revoke() and sys_mount() where vgonel() > could reset v_specinfo. Then v_specmountpoint is no longer valid. > So after sleeping, msdosfs_mountfs() could crash in the error path. > The code in the different *_mountfs() functions was inconsistent, > implement the same check everywhere. > OK krw@ natano@ (bluhm@) uvm ~ uvm_amap.c ~ uvm_amap.h > Make amaps use less kernel memory > This is achieved by grouping amap slots into chunks that are allocated > on-demand by pool(9). Endless "fltamapcopy" loops because of kmem > shortage should be solved now. The kmem savings are also important to later > enable vmm(4) to use larged shared memory mappings for guest VM RAM. > This adapts libkvm also because the amap structure layout has changed. > Testing and fix of libkvm glitch in initial diff by tb@ > Feedback and "time to get this in" kettenis@ (stefan@) ~ uvm_amap.c ~ uvm_amap.h > Revert previous: breaks i386 and powerpc, probably all non-PMAP_DIRECT > archs (guenther@) == usr.bin =========================================================== 09/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin kdump ~ ktrstruct.c > On hppa, function pointer comparison can require dereferencing them. > kdump can't do that for a sigaction sa_handler pointer from the trace, > so cast to void* to suppress it. > ok deraadt@ (guenther@) sendbug ~ sendbug.c > Print a user-friendly message if some fields are missing; ok tedu@ (jca@) ~ sendbug.c > Also print a warning if the user doesn't fill the mail Subject > Alternative diff by Tim (trondd ! kagu-tsuchi . com), ok tedu@ (jca@) skeyinit ~ skeyinit.c > Fix "skeyinit username" run as root. Also reduce the pledge > promise when run as root since we don't need proc or exec as > root. OK tb@, earlier version OK deraadt@ (millert@) ~ skeyinit.c > Move the code block that builds up a default seed further down in order > to reduce the noise in the next commit. While there, fix the indent > level of a bit introduced in the previous commit. > ok millert@ (tb@) ~ skeyinit.c > Refactor the handling of pledge and the optional user string: The three > way pledge introduced by millert@ in -r1.70 is now a two way pledge, one > for non-root and one for root. This also ensures that root drops the > id promise in all cases early on. > This disentangling of the bits for root and non-root simplifies the code > paths in all cases. > ok millert@ (tb@) ssh ~ PROTOCOL.agent > fix type of ed25519 values (djm@) == usr.sbin ========================================================== 10/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin crunchgen ~ crunched_main.c > Restore support for 'instbin program args...' > problem noted by and ok deraadt@ (guenther@) eeprom ~ optree.c > Zero op_name when we start enumerating properties such that we don't risk > skipping the properties of the root node when the lookup of random stack > garbage fails. > ok deraadt@ (kettenis@) ~ optree.c > Byteswap 32-bit "cells" on little-endian platforms before printing them. > OpenFirware/FDT is defined to be big-endian. This makes eeprom -p print > sensible numbers on little-endian platforms. > ok deraadt@ (kettenis@) ~ Makefile > Build on armv7. (kettenis@) httpd ~ server_file.c > Repair some file descriptor leaks. > ok beck krw millert (deraadt@) ~ httpd.c > fix unbalanced va_start and va_end macros > from Hiltjo Posthuma > "do." deraadt (jung@) ~ server_http.c > makes sure the value of the asprintf buffer is zeroed on error > from Hiltjo Posthuma > "do." deraadt (jung@) ntpd ~ constraint.c > Harden TLS for ntpd constraints - stop disabling server name verification, > ensure that we load the CA certificates and use tls_connect_servername() > so that we can verify the server we are connecting to (even though we've > already resolved the hostname). Also add additional warnings for TLS > connect and TLS write failures so that we know what is happening and why. > Lack of server name verification also reported by Luis M. Merino > <luismiguelmerino at gmail dot com> - thanks! > ok deraadt@ reyk@ (jsing@) pkg_add ~ OpenBSD/ProgressMeter/Term.pm > set glitch correctly (espie@) pppd ~ auth.c > remove pam and shadow code that's not used. ok deraadt jca (tedu@) smtpd ~ util.c > replace hardcoded + with TAG_CHAR (gilles@) ~ filter.c ~ smtp_session.c > fix logic in error code path of smtp state machine that can lead to an > invalid state ending in fatal(), while at it plug a file pointer leak. > ok eric@, millert@ (gilles@) ~ filter.c ~ smtp_session.c TAGGED OPENBSD_5_9 > fix logic in error code path of smtp state machine that can lead to invalid > state and result in fatal(), while at it plug file pointer leak. > errata 006 > ok eric@, millert@ (gilles@) ~ ioev.c TAGGED OPENBSD_5_9 > No need to store the return value of fcntl(fd, F_SETFL, flags). > OK jung@ (millert@) ~ smtpd.conf.5 TAGGED OPENBSD_5_9 > table formats are described in table(5) not makemap(8) (gilles@) ~ aliases.c TAGGED OPENBSD_5_9 > replace hardcoded '+' with TAG_CHAR define > diff from obadz <[email protected]> (gilles@) ~ to.c TAGGED OPENBSD_5_9 > use temporary variables to store some struct tm values, no functional > change but reduces the changeset with portable version (gilles@) ~ mda.c ~ mta.c ~ mta_session.c ~ smtp_session.c TAGGED OPENBSD_5_9 > start work on improving the log format, this is work in progress but it'll > be better worked in tree > ok eric@, beck@ (gilles@) =============================================================================== _______________________________________________ owc mailing list [email protected] http://www.squish.net/mailman/listinfo/owc
