OpenBSD src changes summary for 2016-04-10 to 2016-04-17 inclusive ==================================================================
bin/csh bin/rm distrib/miniroot distrib/sets etc/examples/pkg.conf lib/libc lib/libedit lib/librthread lib/libssl libexec/spamd regress/lib regress/usr.bin share/man sys/arch/amd64/amd64 sys/arch/amd64/conf sys/arch/armv7/armv7 sys/arch/armv7/imx sys/arch/armv7/omap sys/arch/armv7/sunxi sys/arch/i386/i386 sys/arch/macppc/dev sys/arch/octeon/dev sys/arch/octeon/octeon sys/arch/sgi/dev sys/arch/sgi/hpc sys/arch/socppc/dev sys/arch/sparc/dev sys/arch/sparc64/conf sys/arch/sparc64/dev sys/dev sys/dev/acpi sys/dev/i2c sys/dev/ic sys/dev/isa sys/dev/pci sys/dev/pckbc sys/dev/pcmcia sys/dev/pv sys/dev/sbus sys/dev/usb sys/kern sys/net sys/net80211 sys/netinet sys/netinet6 sys/sys sys/uvm usr.bin/awk usr.bin/calendar usr.bin/mandoc usr.bin/mg usr.bin/rev usr.bin/ssh usr.bin/systat usr.sbin/bgpd usr.sbin/bind usr.sbin/eigrpd usr.sbin/npppd usr.sbin/pkg_add usr.sbin/procmap usr.sbin/pstat usr.sbin/radiusd usr.sbin/rbootd usr.sbin/smtpd usr.sbin/ypldap == bin =============================================================== 01/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/bin csh ~ lex.c > Change last non-/gnu/ fcntl(x, F_GETFL, 0) strays to fcntl(x, F_GETFL). > No functional change. > ok millert@ (krw@) rm ~ rm.1 ~ rm.c > don't allow removal of /. more robust approach involving stat this time. > posix uses the language "resolves to the root directory" in this case. > ok millert (tedu@) == distrib =========================================================== 02/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib miniroot ~ install.sub > Tweak bsort(): > - make it clear in comment that it returns a unique list > - shift is only possible if argc > 0, otherwise return > - quote "$_b" in equality test forcing possible patterns being > treated as strings > OK halex@, krw@ (rpe@) ~ install.sub > - In isin(), quote $_b to ensure it's treated as string not as pattern. > - Always quote the first argument to isin() > OK halex@, krw@ (rpe@) sets ~ lists/man/mi > sync (jsg@) == etc =============================================================== 03/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/etc examples/pkg.conf ~ examples/pkg.conf > sync (sthen@) == lib =============================================================== 04/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib libc ~ sys/pledge.2 > Clean up and complete the lists of allowed syscalls. > With input from schwarze@ and semarie@. > "go ahead" schwarze@ > (documentation perspective only, without checking factual accuracy) > ok semarie@ on an earlier version (tb@) ~ sys/pledge.2 > documents "route" promise > initial diff from Rob Pierce rob ! 2keys. ca > with some enhancements from jmc@, schwarze@ and me > ok jmc@ schwarze@ (semarie@) ~ sys/pledge.2 > documents "mcast" promise > with few nits from and ok schwarze@ (semarie@) ~ stdlib/malloc.c > two times a define to an inline function, from Michael McConville; ok djm@ > (otto@) ~ sys/pledge.2 > tweak previous; (jmc@) ~ sys/pledge.2 > Revert the recent changes to pledge.2. > Requested by deraadt@ (tb@) ~ sys/intro.2 > document pledge(2); from rob pierce (jmc@) libedit ~ chared.c ~ chartype.h ~ common.c ~ el.c ~ eln.c ~ filecomplete.c ~ hist.c ~ hist.h ~ history.c ~ keymacro.c ~ makelist ~ map.c ~ parse.c ~ read.c ~ refresh.c ~ search.c ~ terminal.c ~ tokenizer.c ~ tty.c ~ vi.c > Move wrapper macros to the two files actually needing them: > FUNW, Strlen, Strdup, Strcmp, Strncmp, Strncpy, Strncat -> history.c > Strchr, tok_strdup -> tokenizer.c > FUN, TYPE, STR -> both of these files > OK martijn@ > Also proofread by Christian Heckendorf <mbie at ulmus dot me> > who reported some whitespace issues in parse.c. (schwarze@) ~ chared.c ~ chared.h ~ chartype.c ~ chartype.h ~ common.c ~ el.c ~ el.h ~ eln.c ~ emacs.c ~ filecomplete.c ~ filecomplete.h ~ hist.c ~ hist.h ~ history.c ~ keymacro.c ~ keymacro.h ~ map.c ~ map.h ~ parse.c ~ parse.h ~ prompt.c ~ prompt.h ~ read.c ~ refresh.c ~ search.c ~ search.h ~ terminal.c ~ terminal.h ~ tokenizer.c ~ tty.c ~ tty.h ~ vi.c > get rid of the non-standard data type "Char" in almost all files; > ok martijn@ (schwarze@) ~ chartype.c ~ chartype.h ~ history.c ~ tokenizer.c > Clean up chartype.h: > * not used in tokenizer.c > * only use it for !NARROWCHAR > * no need for underscores before ct_{de,en}code_string() > * make the conversion buffer resize function private > OK martijn@ (schwarze@) ~ chared.c ~ chartype.c ~ chartype.h ~ el.c ~ eln.c ~ history.c ~ keymacro.c ~ makelist ~ map.c ~ parse.c ~ prompt.c ~ read.c ~ refresh.c ~ search.c ~ sig.c ~ sys.h ~ terminal.c ~ tokenizer.c ~ tty.c ~ vi.c > delete the "private" and "public" preprocessor macros, just use standard C; > OK martijn@ (schwarze@) ~ keymacro.c ~ keymacro.h ~ map.c ~ read.c > * Delete the unimplemented feature XK_EXE. > * Delete the unused macro MIN(). > No functional change. > OK czarkoff@ martijn@ (schwarze@) ~ read.c > Cleanup, no functional change: > * Make the return value from read_getcmd() less confusing. > * No need to store that return value; testing it once is enough. > * Get rid of one #ifdef section in el_wgets(). > OK czarkoff@ martijn@ (schwarze@) ~ read.c > Re-introduce the following commit: > OpenBSD read.c rev. 1.4 1997/06/10 20:10:13 millert > FIONREAD takes int *, not long * > It got lost in the following merge from NetBSD: > OpenBSD read.c rev. 1.10 2003/10/31 08:42:24 otto > OK millert@ martijn@ (schwarze@) librthread ~ pthread.h ~ rthread.h ~ rthread_barrier.c > make pthread_barrier_wait behave more like it does on other platforms. > from Kari Tristan Helgason (tedu@) ~ rthread_sync.c > PROTO_NORMAL(pthread_cond_signal) requires DEF_STD(pthread_cond_signal) > (guenther@) ~ pthread.h > Document PROTO_NORMAL requires matching DEF_{,NON}STD (guenther@) libssl ~ src/crypto/evp/e_chacha20poly1305.c > Use the correct iv and counter when decrypting the ciphertext for > EVP_aead_chacha20_poly1305_ietf(). (jsing@) == libexec =========================================================== 05/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec spamd ~ spamd.c > per rfc, ehlo responses contain hostname, then options. from dyn+bsd > (tedu@) == regress =========================================================== 06/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress lib ~ libedit/chared/Makefile ~ libedit/keymacro/Makefile ~ libedit/read/Makefile > drop -DWIDECHAR, it's no longer needed (schwarze@) ~ libedit/chared/test_gets.c ~ libedit/keymacro/test_get.c ~ libedit/read/glue.c ~ libedit/read/test_getcmd.c ~ libedit/read/test_read_char.c > cope with the deletion of Char, use wchar_t (schwarze@) ~ libcrypto/aead/aeadtest.c > After opening an AEAD, ensure that the decrypted output matches the > plaintext for the regress test case. (jsing@) usr.bin ~ Makefile + rev/Makefile + rev/exp.ascii.txt + rev/exp.utf8.txt + rev/in.txt > Simple regression tests for rev(1), including UTF-8. > The program will soon be fixed by martijn@. (schwarze@) ~ ssh/test-exec.sh > add test knob and warning for StrictModes (djm@) ~ ssh/forwarding.sh > unbreak test for recent ssh de-duplicated forwarding change (djm@) ~ ssh/Makefile + ssh/cfginclude.sh > regression test for ssh_config Include directive (djm@) ~ ssh/Makefile > sync CLEANFILES with portable, sort (djm@) ~ ssh/Makefile > remove redundant CLEANFILES section (djm@) ~ ssh/test-exec.sh > missing bit of Include regress (djm@) == share ============================================================= 07/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man4/com.4 > Add octeon. (visa@) + man4/nvme.4 > nvme(4) is a driver (dlg@) ~ man4/Makefile > add nvme(4) (dlg@) ~ man4/nvme.4 ~ man4/pci.4 > nvme tweaks; (jmc@) ~ man9/ml_init.9 ~ man9/mq_init.9 > remove ml_filter, mq_filter, niq_filter. > theyre currently unused, so no functional change. (dlg@) ~ man1/help.1 > document text editors and use some Ar; from rob pierce (jmc@) ~ man7/library-specs.7 > all archs support shared libs; from bob nw8l > ok sthen (jmc@) == sys =============================================================== 08/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/amd64/amd64 ~ vmm.c > Clarify some comments (mlarkin@) ~ vmm.c > Add functions to dump vcpu register state. Needed for some upcoming diffs. > Not presently used. (mlarkin@) ~ vmm.c > Only build the vcpu register dump functions if VMM_DEBUG is enabled, no > need for these in non-debug scenarios (mlarkin@) ~ vmm.c > Call debug register dump functions in error conditions (if VMM_DEBUG set) > (mlarkin@) ~ vmm.c > add missing arguments to debug printf (mlarkin@) ~ pctr.c > Use cpuid function 0xa to determine presence of general purpose > architectural performance counters, instead of cpu family/model values. > Fixes a panic seen on some hypervisors when pctr(1) is used when the > hypervisor masks out the counters. > Reported by Hiltjo Posthuma, thanks. > ok mikeb@, guenther@ (mlarkin@) ~ vmm.c > add pool_setipl after pool_init. > ok mlarkin@ stefan@ (dlg@) ~ aesni.c > pool_setipl for the aesnipl > it's set to IPL_VM to be conservative wrt its interaction with the crypto > subsystem. (dlg@) arch/amd64/conf ~ GENERIC ~ RAMDISK_CD > enable nvme(4) > ok dlg@ (jsg@) arch/armv7/armv7 ~ autoconf.c ~ armv7.c > Don't try to get a board name string before attaching mainbus with the > platform abstraction. The string is only displayed when attaching the > soc abstractions so this is not needed. When arm mainbus becomes aware > of fdt it can show the /model property itself. (jsg@) ~ autoconf.c > remove an uneeded include (jsg@) arch/armv7/imx ~ imxenet.c > G/C IFQ_SET_READY(). (mpi@) arch/armv7/omap ~ if_cpsw.c > G/C IFQ_SET_READY(). (mpi@) arch/armv7/sunxi ~ sxie.c > G/C IFQ_SET_READY(). (mpi@) arch/i386/i386 ~ pctr.c > Use cpuid function 0xa to determine presence of general purpose > architectural performance counters, instead of cpu family/model values. > Fixes a panic seen on some hypervisors when pctr(1) is used when the > hypervisor masks out the counters. > Reported by Hiltjo Posthuma, thanks. > ok mikeb@, guenther@ (mlarkin@) arch/macppc/dev ~ if_bm.c ~ if_mc.c > G/C IFQ_SET_READY(). (mpi@) arch/octeon/dev ~ if_cnmac.c > G/C IFQ_SET_READY(). (mpi@) ~ cn30xxuart.c > Wrap comintr() so that the interrupt handler always returns non-zero. > This prevents console clutter about spurious UART interrupts. (visa@) ~ cn30xxuart.c > Enable UART FIFOs. (visa@) arch/octeon/octeon ~ locore.S > Enable write buffering with write merging. This improves overall > performance notably. > Discussed with Miod long ago > Tested by and ok jasper@ (visa@) arch/sgi/dev ~ if_iec.c ~ if_mec.c > G/C IFQ_SET_READY(). (mpi@) arch/sgi/hpc ~ if_sq.c > G/C IFQ_SET_READY(). (mpi@) arch/socppc/dev ~ if_tsec.c > G/C IFQ_SET_READY(). (mpi@) arch/sparc/dev ~ be.c ~ qe.c ~ hme.c > G/C IFQ_SET_READY(). (mpi@) arch/sparc64/conf ~ GENERIC > For now, disable ahc(4) such that GENERIC.MP kernels don't overflow the 8M > reserved for .text and .rodata. Hopefully I can get rid of this limit > soon. > propmpted by guenther@ (kettenis@) ~ GENERIC ~ RAMDISK > enable nvme(4). it Just Works(tm). (dlg@) arch/sparc64/dev ~ vnet.c > G/C IFQ_SET_READY(). (mpi@) dev ~ softraid.c ~ softraid_concat.c ~ softraid_crypto.c ~ softraid_raid0.c ~ softraid_raid1.c ~ softraid_raid5.c ~ softraid_raid6.c > No need to rescan chunks in each discipline to find appropriate > volume sector size. Determine volume sector size in sr_meta_init(). > Pointed out, tweaked and ok jsing@ (krw@) dev/acpi ~ dwiic.c > Fix layer violation in the ihidev(4) code by implementing a generic > mechanism > that allows the i2c controller implementation to establish interrupts on > behalf of i2c slave device drivers. Use this mechanism in dwiic(4) to let > it configure the right acpi interrupt (global or gpio). Change the level > to > IPL_TTY as this is the appropriate level to use for keyboards and other > input devices. > ok jsg@ (kettenis@) dev/i2c ~ i2cvar.h ~ ihidev.c > Fix layer violation in the ihidev(4) code by implementing a generic > mechanism > that allows the i2c controller implementation to establish interrupts on > behalf of i2c slave device drivers. Use this mechanism in dwiic(4) to let > it configure the right acpi interrupt (global or gpio). Change the level > to > IPL_TTY as this is the appropriate level to use for keyboards and other > input devices. > ok jsg@ (kettenis@) dev/ic ~ nvme.c > shuffle attach so we read chip capabilities before operating on it > most importantly this gets the proper timeout for chip enables/disables. > (dlg@) ~ acx.c ~ aic6915.c ~ an.c ~ ath.c ~ athn.c ~ atw.c ~ bwi.c ~ dc.c ~ dp8390.c ~ elink3.c ~ fxp.c ~ gem.c ~ hme.c ~ i82596.c ~ if_wi.c ~ lance.c ~ lemac.c ~ malo.c ~ mtd8xx.c ~ pgt.c ~ re.c ~ rt2560.c ~ rt2661.c ~ rt2860.c ~ rtl81x9.c ~ rtw.c ~ rtwn.c ~ smc83c170.c ~ smc91cxx.c ~ ti.c ~ xl.c > G/C IFQ_SET_READY(). (mpi@) ~ nvme.c > nvme_dmamem_alloc runs in autoconf or process context, so it can sleep > (dlg@) ~ nvme.c > rename idx to id in nvme_q_alloc > make it a u_int16_t like the hw while here. (dlg@) ~ nvme.c > keep track of the queue id in nvme_queue. (dlg@) ~ nvme.c > make nvme_poll return the flags from the completion queue entry > it's still 0 on success, but is the actual bits rather than a mashup of it > (dlg@) ~ nvme.c > poll for command completion on the cqe itll be of calling nvme_intr (dlg@) ~ nvme.c > nvme_sqe_fill will post a copy of an sqe from a caller (dlg@) ~ nvme.c > provide an scsi_adapter and stub functions for emulation to sit in (dlg@) ~ nvmevar.h > make a place for q_id to go (dlg@) ~ nvme.c ~ nvmevar.h > stash the controller identify and number of namespaces in the softc. > the nn is used to size the scsi bus, and the controller identify is used > to build responses for various scsi commands. (dlg@) ~ nvme.c ~ nvmevar.h > allocate an array of things to hold info about namespaces > so far the only useful info is namespace identify info (dlg@) ~ nvme.c ~ nvmevar.h > wire up the scsi midlayer. scsibus should appear after this. (dlg@) ~ nvmereg.h > the io command set (dlg@) ~ nvmereg.h > implement the namespace identify structure (dlg@) ~ nvme.c > implement the guts of the scsi probe and free function > probe issues a namespace identify against the "target". if it works > it stashes a copy of the info, otherwise it tells the midlayer to > avoid it. > free gets rid of the stashed info. (dlg@) ~ nvmereg.h > provide variants of the sqe struct for q creation and io operations (dlg@) ~ nvme.c > implement basic scsi inquiry handling > most values are as per the nvm to scsi mapping guide. this doesnt > do vpd at all, so no devids or serial numbers just yet. (dlg@) ~ nvme.c > implement handling of scsi read capacity commands > read cap 16 claims the devices are thin. (dlg@) ~ nvme.c > stub out handling of TEST_UNIT_READY, PREVENT_ALLOW, and START_STOP > at the moment this just pretends the commands completed fine. (dlg@) ~ nvme.c > nvme_q_create() issues the commands to tell the chip about io queues (dlg@) ~ nvme.c > allocate a queue for io commands and tell the chip about it. > this is necessary to run reads and writes against the device. (dlg@) ~ nvme.c > enable interrupts before attaching the scsibus (dlg@) ~ nvme.c > implement handling of scsi reads and writes > ive only tested reads, and not very big ones. > nvme 1.0 has a very stupid/naive idea about what constitutes a > scatter gather list. it assumes io is in whole pages in memory, but > i dont know if that is true in our kernel. > this could be cleaned up a bit, and it currently runs with a single > opening for the whole scsi layer and a bunch of magic values for > the size and number of the io queues. (dlg@) ~ nvmevar.h > tabs, not spaces (dlg@) ~ nvme.c > dont put names in arguments. (dlg@) ~ nvme.c > check both the admin and io queue for completions in the interrupt handler > this means we'll notice io completions. (dlg@) ~ nvme.c > cut the memory for io buffers up into page sized chunks > nvme 1.0 does not use conventional scatter gather lists of > address+length pairs. instead, it simply expects a list of page > addresses. this should be ok if we only feed it single VA chunks > which map directly to only whole physical pages. > nvme 1.1 introduced another scather format, but still accepts the > 1.0 format too. we'll stick to the 1.0 format so we can support 1.0 > devs. (dlg@) ~ nvme.c > WAITOK for the dmamap create for ccbs too > again, only called during autoconf which is a kind of process context. > (dlg@) ~ nvme.c > dont complete scsi writes twice > it ends up being a use after free, which disagrees with the midlayer. > (dlg@) ~ nvme.c > dont attach if the min nvme page size is bigger than the cpu page size > nvme and the host cpu need to agree on the page size because its > the implicit size of the elements in the chips scatter gather lists. > if the min nvme size is greater than the cpus page size then we > cant guarantee that io buffers are contig for nvme pages. > nvme 1.1 provides an alternative sgl mechanism, so if this really > becomes a problem in the future we can fix it on 1.1 and later > devices. (dlg@) ~ nvme.c > allocate dma memory for ccbs to use as prpe lists > prpe is short for Physical Region Page Entry. this is where long > lists of dma regions go when they wont fit into a submission queue > entry. (dlg@) ~ nvme.c > set the scsi status to SCSI_OK (dlg@) ~ nvme.c > reallocate the ccbs after we figure out how big the sgls can be > we run with 2 entries for the nvme controller identify, and then bump it > up to cover the maxphys divided by the page size we negotiate. (dlg@) ~ nvme.c > if io needs more than two prpe slots, overflow into the ccb prpl > this should be enough to make io reliable (dlg@) ~ nvme.c > bump openings to 64 to match the number of ccbs. > still a bit magical, but good enough for now. (dlg@) ~ nvme.c > implement translation of scsi SYNC CACHE to nvme FLUSH (dlg@) ~ nvmevar.h ~ nvmereg.h ~ nvme.c > provide a shutdown hook that follows the procedure in the docs (dlg@) ~ nvme.c > apparently it's spelled NVMe, not NVME (dlg@) ~ nvme.c > shorten the io path slightly (dlg@) dev/isa ~ if_ef_isapnp.c ~ if_eg.c ~ if_el.c ~ if_ex.c ~ if_ie.c > G/C IFQ_SET_READY(). (mpi@) dev/pci ~ if_age.c ~ if_alc.c ~ if_ale.c ~ if_bce.c ~ if_bge.c ~ if_bnx.c ~ if_cas.c ~ if_de.c ~ if_em.c ~ if_et.c ~ if_ipw.c ~ if_iwi.c ~ if_iwm.c ~ if_iwn.c ~ if_ix.c ~ if_ixgb.c ~ if_jme.c ~ if_lge.c ~ if_lii.c ~ if_msk.c ~ if_myx.c ~ if_nfe.c ~ if_nge.c ~ if_nxe.c ~ if_oce.c ~ if_pcn.c ~ if_se.c ~ if_sis.c ~ if_sk.c ~ if_ste.c ~ if_stge.c ~ if_tht.c ~ if_tl.c ~ if_txp.c ~ if_vge.c ~ if_vic.c ~ if_vio.c ~ if_vmx.c ~ if_vr.c ~ if_vte.c ~ if_wb.c ~ if_wpi.c ~ if_xge.c > G/C IFQ_SET_READY(). (mpi@) ~ if_myx.c > G/C IFQ_SET_READY(). (mpi@) ~ nvme_pci.c > provide a shutdown hook that follows the procedure in the docs (dlg@) ~ drm/i915/intel_i2c.c > Make the gmbus code work on valleyview. > ok jsg@ (kettenis@) dev/pckbc ~ pckbd.c > Re-enable pckbd on resume (similar to what we do on boot). Fixes problems > on (at least) various HP laptops that previously had no working keyboard > after resuming from 'zzz'. > Reported by Aleksandar Lakic, who also verified several versions of the > diff during development, thanks. > discussed with miod and kettenis, tested by many others on tech@ - thanks. > (mlarkin@) dev/pcmcia ~ if_cnw.c ~ if_malo.c ~ if_xe.c > G/C IFQ_SET_READY(). (mpi@) dev/pv ~ if_xnf.c > G/C IFQ_SET_READY(). (mpi@) dev/sbus ~ be.c ~ qe.c > G/C IFQ_SET_READY(). (mpi@) dev/usb ~ if_cdce.c ~ if_cdcef.c ~ if_ugl.c > Call ether_fakeaddr() instead of faking Ethernet addresses manually. > Input from and ok jsg@ (mpi@) ~ if_atu.c ~ if_aue.c ~ if_axe.c ~ if_axen.c ~ if_cdce.c ~ if_cdcef.c ~ if_cue.c ~ if_kue.c ~ if_mos.c ~ if_otus.c ~ if_ral.c ~ if_rsu.c ~ if_rum.c ~ if_run.c ~ if_smsc.c ~ if_uath.c ~ if_udav.c ~ if_ugl.c ~ if_upgt.c ~ if_upl.c ~ if_url.c ~ if_urndis.c ~ if_urtw.c ~ if_urtwn.c ~ if_zyd.c > G/C IFQ_SET_READY(). (mpi@) kern ~ uipc_mbuf.c > remove ml_filter, mq_filter, niq_filter. > theyre currently unused, so no functional change. (dlg@) net ~ if_bridge.c > Set bridge(4)'s if_output to a dummy function returning EAFNOSUPPORT as > it should not be used to output packets but we have to respect the ifp > driver API to some extend. > Prevent a panic found the hardway by espie@. > ok claudio@, mikeb@, jsg@, krw@ (mpi@) ~ art.c ~ art.h > Remove unneeded art_free(). > Reported by and ok jmatthew@ (mpi@) ~ rtable.c ~ art.c ~ art.h > Keep all pools in the same place. > ok jmatthew@ (mpi@) ~ if_gif.c ~ if_loop.c ~ if_mpe.c ~ if_ppp.c ~ if_pppoe.c ~ if_pppx.c ~ if_trunk.c ~ if_tun.c ~ if_vether.c ~ if_vlan.c ~ if_vxlan.c ~ if_mpw.c ~ if_var.h ~ if_pair.c ~ if_etherip.c > We're always ready! So send IFQ_SET_READY() to the bitbucket. (mpi@) ~ bpf.c > Enable device cloning for bpf. This allows to have just one bpf device > node in /dev, that services all bpf consumers (up to 1024). Also, > disallow the usage of all but the first minor device, so accidental use > of another minor device will attract attention. > Cloning bpf offers some advantages: > - Users with high bpf usage won't have to clutter their /dev with device > nodes. > - A lot of programs in base use a pattern like this to acces bpf: > int fd, n = 0; > do { > (void)snprintf(device, sizeof device, "/dev/bpf%d", n++); > fd = open(device, mode); > } while (fd < 0 && errno == EBUSY); > Those can now be replaced by a simple open(), without loop. > ok mikeb > "right time in the cycle to try" deraadt (natano@) ~ pf.c > replace m_copym2 with m_dup_pkt for the dup-to handling. > note that this uses max_linkhdr as the adjustment arg. this follows > what the ip stack does when generating packets as it provides space > for link headers (like ethernet headers) to be prepended on the new > packet. > ok henning@ (dlg@) ~ if_vlan.c > rework vlan config to make it mpsafe and done by standard ioctls > configuration of the vlan parent interface and the vlan id should > come via the IFPARENT and VNETID ioctls now. the vlan specific > ioctls are still available via a compat layer, but that will go > away a bit further into this release cycle. > the parent interface may only be configured while the vlan is down. > the vnetid may be changed at runtime, but will generate link state > changes across that event. > the vlan is implicitily brought up when an address is assigned, > which brings it in line with all our other network drivers. the > legacy vlan ioctl still imply bringing the interface up because > that's what it used to do. > the code that brings vlans up and down is now simplified because > it no longer supports changing the parent at run time. most of that > code now adds state to the parent when bringing the vlan up, and > bringing the interface down just removes it in reverse. > these simplifications in turn make it possible for us to transmit > packets on vlan interfaces without holding the big lock, so its now > marked as MPSAFE. > ok jmatthew@ sthen@ mpi@ (dlg@) ~ if_vlan.c ~ if_vlan_var.h > rename ifv_p to ifv_ifp0 > this makes it more clear to the casual reader that it refers to the > parent interface, which is consistently referred to as ifp0 in the > rest of the vlan (and carp) code. > this is a good idea from mpi@ (dlg@) ~ if_var.h > remove ml_filter, mq_filter, niq_filter. > theyre currently unused, so no functional change. (dlg@) net80211 ~ ieee80211_input.c ~ ieee80211_node.c ~ ieee80211_output.c ~ ieee80211_pae_output.c ~ ieee80211_proto.c > Call if_enqueue() and if_start() instead of dereferencing the ifp > pointers. > These functions have been introduced to abstract some of the MP- > safeness^Wmadness and should be use everywhere. > Prodded by a comment from jsg@. > ok mikeb@, stsp@ (mpi@) ~ ieee80211_input.c > replace m_copym2 with m_dup_pkt > tested by and ok stsp@ (dlg@) netinet ~ in_pcb.c ~ in_pcb.h > Rename in_pcblookup() to in_pcblookup_local() and change its prototype > to get rid of the now useless foreign address and ports parameters. > ok mpi@ (vgross@) ~ in_pcb.c > Simplify in_pcblookup_local() logic. > ok mpi@ (vgross@) ~ in_pcb.c > Unbreak tree. Put 'laddr6' declaration inside #ifdef INET6/#endif. (krw@) ~ in_pcb.c > Remove extra parenthesis around comparison. > Found by David Hill <[email protected]> with clang. (vgross@) ~ ip_carp.c > We're always ready! So send IFQ_SET_READY() to the bitbucket. (mpi@) ~ ip_input.c ~ ip_var.h > Kill in_rtaddr() and use rtalloc(9) directly in ip_dooptions(). > This brings ip_dooptions() closer to mp-safeness by ensuring that > ``ifa'' is dereferenced before calling rtfree(9). > ok mikeb@ (mpi@) netinet6 ~ ip6_input.c > Search in the correct routing table if NPF is not defined. > ok jca@, phessler@, mikeb@ (mpi@) ~ raw_ip6.c > This code chunk has been disabled since its import, and what is does is > quite unsafe. Juste delete it. > Ok mpi@ (vgross@) ~ in6_pcb.c > Rename in_pcblookup() to in_pcblookup_local() and change its prototype > to get rid of the now useless foreign address and ports parameters. > ok mpi@ (vgross@) sys ~ conf.h > Enable device cloning for bpf. This allows to have just one bpf device > node in /dev, that services all bpf consumers (up to 1024). Also, > disallow the usage of all but the first minor device, so accidental use > of another minor device will attract attention. > Cloning bpf offers some advantages: > - Users with high bpf usage won't have to clutter their /dev with device > nodes. > - A lot of programs in base use a pattern like this to acces bpf: > int fd, n = 0; > do { > (void)snprintf(device, sizeof device, "/dev/bpf%d", n++); > fd = open(device, mode); > } while (fd < 0 && errno == EBUSY); > Those can now be replaced by a simple open(), without loop. > ok mikeb > "right time in the cycle to try" deraadt (natano@) ~ mbuf.h > remove ml_filter, mq_filter, niq_filter. > theyre currently unused, so no functional change. (dlg@) uvm ~ uvm_amap.c > Simplify amap traversal in amap_swap_off. > There's no need to insert marker elements to find the next item in the > amap list. The next amap can be determined by looking at the currently > examined amap. > Care must be taken to get the next element before the current amap is > possibly deleted, and after all the current amap's pages were read in > from swap (because the page-in may sleep and remove items from the amap > list). (stefan@) ~ uvm_amap.c ~ uvm_amap.h > Remove am_maxslot from amap. > am_maxslot represents the total number of slots an amap can be extended > to. Since we do not extend amaps, this field as well as rounding the > number of slots to the next malloc bucket is not useful. > This also removes the corresponding output from procmap(1). > ok kettenis@ (stefan@) == usr.bin =========================================================== 09/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin awk ~ lib.c > Fix awk crash with empty assignment, e.g. 'BEGIN {i=$1}', when > malloc does not return zero-filled data. OK tb@ (millert@) calendar ~ calendars/calendar.birthday > Howard Marks died yesterday (sthen@) mandoc ~ main.c > Give manuals in purely numerical sections priority over manuals of > the same name in sections with an alphabetical suffix (on OpenBSD, > mostly 3p), restoring behaviour of the traditional BSD man(1) that > got lost in the switch to the mandoc-based implementation. > Issue reported by jsg@, using an idea by mikeb@ for the solution, > and at least afresh1@ and jasper@ also seem in favour of the direction. > (schwarze@) ~ cgi.c > Give manuals in purely numerical sections priority over manuals of > the same name in sections with an alphabetical suffix; same logic > as in main.c rev. 1.171. (schwarze@) ~ cgi.c > do not rewrite short URIs (schwarze@) ~ main.c > Fix a process group race. > It could occasionally happen that the child process spawned less(1) > before the parent process passed the control of the terminal to the > child, and in that case, less(1) sometimes complained "Stopped (tty > output)". Issue reported by naddy@. (schwarze@) ~ cgi.c > for .Xr links, use short PATH_INFO style URIs (schwarze@) ~ cgi.c > omit list of other results one there is only one match (schwarze@) ~ cgi.c > If PATH_INFO contains a complete and correct path to a manual page > file, for example "/OpenBSD-5.9/man2/pledge.2", no database query > is needed and the file is delivered directly. > But even in this case, let's parse the PATH_INFO and fill the query > structure such that the search form at the top of the result page > gets pre-filled with useful values. (schwarze@) ~ cgi.c > In the architectures dropdown, move aviion, ia64, solbourne, and vax > down to the currently unsupported entries. (schwarze@) ~ cgi.c > Make HTML tags lower case for better stylistic agreement with what > html.c does. (schwarze@) ~ cgi.c > Fix parsing of PATH_INFO if both a section directory and an > architecture subdirectory are specified. Issue reported by tb@. > (schwarze@) ~ cgi.c > prefer warn[x](3) over fprintf(3) where appropriate (schwarze@) ~ cgi.c > Rename five static functions to make the classification of functions > as parsers, page generators, and result generators more obvious. > No functional change. (schwarze@) mg ~ paragraph.c > Stop mg putting a space at the end of a paragraph when using > fill-paragraph. Reported by Harald Dunkel. (lum@) ~ def.h ~ funmap.c ~ main.c ~ mg.1 ~ paragraph.c > Add 'sentence-end-double-space'. > If you prefer "lighter" punctuation and one space between sentences, > for example: > Mr and Mrs Jones are from the UK. They arrived today. > over more liberal use of full stops and double spaces between > sentences: > Mr. and Mrs. Jones are from the U.K. They arrived today. > then toggling 'sentence-end-double-space' will make mg's > fill-paragraph function format text using one space instead of two > (the default) between sentences. However, be careful, should you have > a double spaced document and accidentally "format" it to have single > spaces, then you may have a problem. mg won't be able to revert the > formatting for you (unless you have a previous version of the text in > the "undo" history, or are using mg's backup facility and haven't > opened and saved multiple times!). > Comments from schwarze@ (lum@) rev ~ rev.c > Enable UTF-8 support in rev. > Some minor cleanups while here. > OK schwarze@ (martijn@) ssh ~ readconf.c ~ readconf.h ~ ssh.1 ~ ssh_config.5 > Include directive for ssh_config(5); feedback & ok markus@ (djm@) ~ ssh_config.5 > tweak previous; (jmc@) systat ~ pftop.c > remove dumpfilter related code; it's a leftover from pftop-proper and not > used > in systat > ok canacar@ (jasper@) == usr.sbin ========================================================== 10/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin bgpd ~ kroute.c TAGGED OPENBSD_5_9 > MFC > revision 1.209 by phessler@ > When bgp receives an RTM_CHANGE message for an RTF_MPATH route[1], and > it finds it actually on an interface, bgpd can get confused. In this > case, just log it and treat it as an RTM_ADD so bgpd doesn't suicide. > [1] includes all ospfd installed routes, btw. > OK benno@ sthen@ (phessler@) ~ kroute.c TAGGED OPENBSD_5_8 > MFC > revision 1.209 by phessler@ > When bgp receives an RTM_CHANGE message for an RTF_MPATH route[1], and > it finds it actually on an interface, bgpd can get confused. In this > case, just log it and treat it as an RTM_ADD so bgpd doesn't suicide. > [1] includes all ospfd installed routes, btw. > OK benno@ sthen@ (phessler@) bind ~ lib/isc/unix/entropy.c ~ lib/isc/unix/socket.c ~ lib/lwres/context.c > Change last non-/gnu/ fcntl(x, F_GETFL, 0) strays to fcntl(x, F_GETFL). > No functional change. > ok millert@ (krw@) eigrpd ~ eigrpd.c ~ eigrpd.h ~ eigrpe.c ~ eigrpe.h ~ interface.c ~ kroute.c ~ log.c ~ log.h ~ packet.c ~ parse.y ~ rde.h ~ rde_dual.c > Minor fixes and code cleanup. > * whitespace cleanup; > * copy in_addr structs directly; > * add more malloc return value checks; > * fix some log messages; > * turn ifacecnt into a static variable; > * use eigrp_addrcmp() on if_deladdr() to avoid code duplication; > * s/route_print_origin/log_route_origin/ > * more smaller issues. (renato@) ~ rde_dual.c > Fix corner case in Feasible Condition check. > From the EIGRP draft: > "The Feasibility Condition is met when a neighbor's advertised cost, (RD) > to a destination is less than the Feasible Distance for that destination". > So, according to the draf, when the Reported Distance is EQUAL to the > Feasible Distance, the Feasible Condition is NOT met. (renato@) ~ eigrpd.c ~ eigrpd.h ~ parse.y > Move the command line options out of struct eigrpd_config > into an own flag field since these can't be modified via a > config reload. > Pulled from bgpd. Original author: claudio@ (renato@) ~ eigrpd.c ~ eigrpd.h ~ eigrpe.c ~ interface.c ~ packet.c ~ parse.y ~ rde.c > Move several other variables out of eigrpd_conf. > Now eigrpd_conf contains only variables that can be modified via a > config reload. The other variables were moved to a new struct called > eigrpd_global, which is now a central point for storing global variables. > (renato@) ~ parse.y > Properly implement the clear_config() function. > We need to free the internal pointers of the eigrpd_conf struct, not > only the main struct. This avoids memory leaks when a config reload > happens to fail (e.g. due to a syntax error). (renato@) ~ eigrpe.c ~ rde.c > Fix segfault on reloading the config multiple times. (renato@) ~ eigrpd.c ~ eigrpe.c ~ rde.c > Kill the child processes if their parent dies unexpectedly. > There's no point on keeping eigrpd running if any of its processes > dies unexpectedly. (renato@) ~ eigrpd.h ~ parse.y ~ rde.h > Check for subnet overlap between the configured summary-addresses. > (renato@) npppd ~ pptp/pptp_ctrl.c ~ pptp/pptpd.c > Change last non-/gnu/ fcntl(x, F_GETFL, 0) strays to fcntl(x, F_GETFL). > No functional change. > ok millert@ (krw@) pkg_add ~ OpenBSD/PackageRepository.pm > fallback to _pfetch after _pkgfetch until sysmerge is run automatically > (espie@) procmap ~ procmap.c > Remove am_maxslot from amap. > am_maxslot represents the total number of slots an amap can be extended > to. Since we do not extend amaps, this field as well as rounding the > number of slots to the next malloc bucket is not useful. > This also removes the corresponding output from procmap(1). > ok kettenis@ (stefan@) pstat ~ pstat.c > The -T flag consumes the same data as the -f flag so it requires > nlist too. Fixes a crash when the -T flag is specified due to > calling kvm_read() with a NULL kvm_t. From Rob Pierce (millert@) radiusd ~ radiusd.c > remove "abort" promise from debugging code in radiusd > it is the default now, and the promise name isn't valid anymore. > ok yasuoka@ (semarie@) ~ radiusd.c > Change last non-/gnu/ fcntl(x, F_GETFL, 0) strays to fcntl(x, F_GETFL). > No functional change. > ok millert@ (krw@) rbootd ~ bpf.c > Replace bcopy() from struct bpf_timeval to struct timeval; those > structures are not exchangeable. This should unbreak connection timeouts > in rbootd, although I can't verify due to lack of rboot-able hardware. > ok guenther millert (natano@) smtpd ~ smtpd.conf.5 > arguments to "chain" are space separated, not comma; verified by jung > diff from david+bsd > i also removed Op, since ... is enough/ (jmc@) ~ smtpctl.8 > fix typo, it is supposed to be smtpctl trace "filters" not "filter" > from Boudewijn Dijkstra (jung@) ypldap ~ ypldap_dns.c ~ ypldap.h ~ ldapclient.c > convert ypldap_addr list to a tailq > ok dlg@ (jmatthew@) =============================================================================== _______________________________________________ owc mailing list [email protected] http://www.squish.net/mailman/listinfo/owc
