OpenBSD src changes summary for 2015-12-08 ==========================================
Makefile.cross distrib/sets distrib/special etc/mail/Makefile etc/mtree/4.4BSD.dist lib/libc libexec/spamd sbin/mount_ext2fs sbin/mount_ffs share/man sys/arch/amd64/amd64 sys/arch/amd64/conf sys/arch/amd64/include sys/arch/macppc/dev sys/arch/sgi/hpc sys/arch/sparc/dev sys/arch/vax/if sys/conf sys/dev/ic sys/dev/isa sys/dev/pci sys/dev/pcmcia sys/dev/pv sys/dev/sbus sys/dev/usb sys/kern sys/net sys/nfs sys/sys sys/tmpfs sys/ufs/ufs usr.bin/calendar usr.bin/doas usr.bin/nc usr.bin/tmux usr.bin/wc usr.sbin/arp usr.sbin/authpf usr.sbin/mailwrapper usr.sbin/rebound usr.sbin/smtpd usr.sbin/vmctl usr.sbin/vmd usr.sbin/ypserv == Makefile.cross ==================================================== 01/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/Makefile.cross Makefile.cross > Restore parenthesis (tobiasu@) == distrib =========================================================== 02/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib sets ~ lists/base/mi ~ lists/etc/mi > Move /etc/examples/vm.conf from etc to base. > ok sthen@ jca@ reyk@ (ajacoutot@) ~ lists/base/md.alpha ~ lists/base/md.amd64 ~ lists/base/md.armish ~ lists/base/md.armv7 ~ lists/base/md.hppa ~ lists/base/md.hppa64 ~ lists/base/md.i386 ~ lists/base/md.landisk ~ lists/base/md.loongson ~ lists/base/md.luna88k ~ lists/base/md.macppc ~ lists/base/md.octeon ~ lists/base/md.sgi ~ lists/base/md.socppc ~ lists/base/md.sparc ~ lists/base/md.sparc64 ~ lists/base/md.vax ~ lists/base/md.zaurus > sync (deraadt@) ~ lists/comp/mi > sync (deraadt@) special ~ signify/Makefile > don't need to .path ssh anymore since the file were copied (tedu@) == etc =============================================================== 03/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/etc mail/Makefile ~ mail/Makefile > Use mailwrapper path instead of smtpd. > Ok tb@ jung@ (sunil@) mtree/4.4BSD.dist ~ mtree/4.4BSD.dist > libexec/smtpd dir no longer needed; ok gilles (deraadt@) == lib =============================================================== 04/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib libc ~ gen/getusershell.c > rewrite guts of getusershell() to avoid possibility of overflow. > instead of trying to allocate "just enough" memory based on the size of the > file (which is mostly comments, in fact), allocate memory on demand. > i.e., save memory by wasting it. also be a little stricter about parsing. > after discussion with tobias. (with a bug fix from patrick keshishian) > descended from bug glibc bug 18660 via tobias. (tedu@) == libexec =========================================================== 05/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec spamd ~ grey.c ~ spamd.c > Initially pledge spamd > All the work done by Ricardo Mestre <[email protected]> - Thanks. > (beck@) == sbin ============================================================== 06/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin mount_ext2fs ~ mount_ext2fs.c > spaces to tabs (tedu@) mount_ffs ~ mount_ffs.c > spaces to tabs (tedu@) == share ============================================================= 07/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man9/Makefile + man9/if_get.9 > Manual for if_get(9) and if_put(9). > ok dlg@ (mpi@) ~ man4/man4.luna88k/le.4 ~ man4/man4.vax/de.4 ~ man4/man4.vax/qe.4 > remove lies about trailers support (tedu@) ~ man8/afterboot.8 > NOTRAILERS is unlikely to show up in future ifconfig output (tedu@) ~ man7/hier.7 > remove libexec/smtpd; (jmc@) ~ man9/if_get.9 > tweak previous; (jmc@) ~ man4/pvbus.4 > Add vmm(4) to the list. (reyk@) == sys =============================================================== 08/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/amd64/amd64 ~ locore.S > Setup a hypercall page in the kernel .text segment > Its location will be communicated with the Xen hypervisor > that will fill it in with instructions resulting in VMEXIT > events. > Discussed with kettenis@ and deraadt@, with input from and > OK mpi, mlarkin, reyk (mikeb@) ~ intr.c ~ lapic.c ~ vector.S > Set up an IDT vector for Xen callbacks > This adds support for delivering the combined Xen interrupt > that later fans out into event port specific (device specific) > interrupts via an IDT of a guest system. > The Xen IDT vector is set to be the first of the IPL_NET group > and is implemented the same way LAPIC timer and IPIs are done. > The additional machinery is there to be able to mask it via > standard mechanisms (e.g. splnet). > Discussed with kettenis@, OK mlarkin, reyk (mikeb@) arch/amd64/conf ~ GENERIC > Xen basic infrastructure files and pvbus(4) attachment. > With input from and OK mpi, mlarkin, reyk (mikeb@) ~ GENERIC > Driver for the XenSource Platform Device > This is a simple driver for the virtual PCI device with only one > purpose: to allocate the interrupt vector and communicate that > to the Hypervisor in case the IDT callback method was not available. > With input from and OK deraadt, mlarkin, reyk, mpi (mikeb@) ~ GENERIC > Disable xspd(4) until the man page is written; noticed by reyk@ (mikeb@) arch/amd64/include ~ i82489var.h ~ intrdefs.h > Set up an IDT vector for Xen callbacks > This adds support for delivering the combined Xen interrupt > that later fans out into event port specific (device specific) > interrupts via an IDT of a guest system. > The Xen IDT vector is set to be the first of the IPL_NET group > and is implemented the same way LAPIC timer and IPIs are done. > The additional machinery is there to be able to mask it via > standard mechanisms (e.g. splnet). > Discussed with kettenis@, OK mlarkin, reyk (mikeb@) arch/macppc/dev ~ if_bm.c ~ if_mc.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) arch/sgi/hpc ~ if_sq.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) arch/sparc/dev ~ be.c ~ hme.c ~ if_ie.c ~ qe.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) arch/vax/if ~ if_de.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) conf ~ files > split the interface send queue (struct ifqueue) implementation out. > the intention is to make it more clear what belongs to a transmit > queue and what belongs to an interface. > suggested by and ok mpi@ (dlg@) dev/ic ~ ath.c ~ atw.c ~ dp8390.c ~ elink3.c ~ gem.c ~ hme.c ~ i82596.c ~ lance.c ~ lemac.c ~ rtw.c ~ smc91cxx.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) dev/isa ~ if_ef_isapnp.c ~ if_eg.c ~ if_el.c ~ if_ie.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) dev/pci ~ if_de.c > dont need to repeatedly set if_start to the same function. (dlg@) ~ if_cas.c ~ if_de.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) ~ if_iwm.c ~ if_iwmreg.h ~ if_iwmvar.h > When iwm(4) moves to AUTH state it asks the firmware for a "time event" to > prevent it from moving off-channel during association. The firmware issues > interrupts at beginning and end of the time event. The driver tried > detecting > the beginning with a tsleep() in the newstate task followed by a wakeup() > from the interrupt handler. However, sometimes the newstate task did not > get > scheduled until the time event had already passed, and association was > aborted. > In rare cases the newstate task would even sleep forever and the iwm(4) > interface would stop working until reboot. > Fix these issues by issuing the time event and continuing association > without > checking for a "go" from the firmware. Our kernel does not provide the > scheduling guarantees required for such precise synchronization so > association is more likely to fail with the additional check than without. > ok mpi@ tedu@ (stsp@) ~ files.pci + xspd.c > Driver for the XenSource Platform Device > This is a simple driver for the virtual PCI device with only one > purpose: to allocate the interrupt vector and communicate that > to the Hypervisor in case the IDT callback method was not available. > With input from and OK deraadt, mlarkin, reyk, mpi (mikeb@) dev/pcmcia ~ if_cnw.c ~ if_xe.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) dev/pv ~ files.pv + xen.c + xenvar.h > Xen basic infrastructure files and pvbus(4) attachment. > With input from and OK mpi, mlarkin, reyk (mikeb@) ~ xen.c ~ xenvar.h + xenreg.h > This brings in support for Xen hypercalls via an MI interface > and implements functions to fetch extended version and features. > OK mlarkin (mikeb@) ~ xen.c ~ xenreg.h ~ xenvar.h > Allocate and hook up a "shared info page" > This page provides a matrix of pending events and some other > information like hypervisor timecounter. > OK mlarkin, reyk (mikeb@) ~ xenvar.h > /* > * Copyright (c) 2015 Mike Belopuhov > * > * Permission to use, copy, modify, and distribute this software for any > * purpose with or without fee is hereby granted, provided that the above > * copyright notice and this permission notice appear in all copies. > * > * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES > * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF > * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR > * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES > * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > */ > #include <sys/param.h> > #include <sys/systm.h> > #include <sys/atomic.h> > #include <sys/malloc.h> > #include <sys/kernel.h> > #include <sys/device.h> > #include <machine/bus.h> > #include <machine/cpu.h> > #include <machine/cpufunc.h> > #include <uvm/uvm_extern.h> > #include <machine/i82489var.h> > #include <dev/pv/pvvar.h> > #include <dev/pv/xenreg.h> > #include <dev/pv/xenvar.h> > struct xen_softc *xen_sc; > int xen_init_hypercall(struct xen_softc *); > int xen_getversion(struct xen_softc *); > int xen_getfeatures(struct xen_softc *); > int xen_init_info_page(struct xen_softc *); > int xen_init_cbvec(struct xen_softc *); > int xen_match(struct device *, void *, void *); > void xen_attach(struct device *, struct device *, void *); > void xen_resume(struct device *); > int xen_activate(struct device *, int); > const struct cfdriver xen_cd = { > NULL, "xen", DV_DULL > }; > const struct cfattach xen_ca = { > sizeof(struct xen_softc), xen_match, xen_attach, NULL, xen_activate > }; > int > xen_match(struct device *parent, void *match, void *aux) > { > struct pv_attach_args *pva = aux; > struct pvbus_hv *hv = &pva->pva_hv[PVBUS_XEN]; > if (hv->hv_base == 0) > return (0); > return (1); > } > void > xen_attach(struct device *parent, struct device *self, void *aux) > { > struct pv_attach_args *pva = (struct pv_attach_args *)aux; > struct pvbus_hv *hv = &pva->pva_hv[PVBUS_XEN]; > struct xen_softc *sc = (struct xen_softc *)self; > sc->sc_base = hv->hv_base; > printf("\n"); > if (xen_init_hypercall(sc)) > return; > /* Wire it up to the global */ > xen_sc = sc; > if (xen_getversion(sc)) > return; > if (xen_getfeatures(sc)) > return; > if (xen_init_info_page(sc)) > return; > xen_init_cbvec(sc); > } > void > xen_resume(struct device *self) > { > } > int > xen_activate(struct device *self, int act) > { > int rv = 0; > switch (act) { > case DVACT_RESUME: > xen_resume(self); > break; > } > return (rv); > } > int > xen_init_hypercall(struct xen_softc *sc) > { > extern void *xen_hypercall_page; > uint32_t regs[4]; > paddr_t pa; > /* Get hypercall page configuration MSR */ > CPUID(sc->sc_base + CPUID_OFFSET_XEN_HYPERCALL, > regs[0], regs[1], regs[2], regs[3]); > /* We don't support more than one hypercall page */ > if (regs[0] != 1) { > printf("%s: requested %d hypercall pages\n", > sc->sc_dev.dv_xname, regs[0]); > return (-1); > } > sc->sc_hc = &xen_hypercall_page; > if (!pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_hc, &pa)) { > printf("%s: hypercall page PA extraction failed\n", > sc->sc_dev.dv_xname); > return (-1); > } > wrmsr(regs[1], pa); > DPRINTF("%s: hypercall page at va %p pa %#lx\n", sc->sc_dev.dv_xname, > sc->sc_hc, pa); > return (0); > } > int > xen_hypercall(struct xen_softc *sc, int op, int argc, ...) > { > va_list ap; > ulong argv[5]; > int i; > if (argc < 0 || argc > 5) > return (-1); > va_start(ap, argc); > for (i = 0; i < argc; i++) > argv[i] = (ulong)va_arg(ap, ulong); > return (xen_hypercallv(sc, op, argc, argv)); > } > int > xen_hypercallv(struct xen_softc *sc, int op, int argc, ulong *argv) > { > ulong hcall; > int rv = 0; > hcall = (ulong)sc->sc_hc + op * 32; > #if defined(XEN_DEBUG) && disabled > { > int i; > printf("hypercall %d", op); > if (argc > 0) { > printf(", args {"); > for (i = 0; i < argc; i++) > printf(" %#lx", argv[i]); > printf(" }\n"); > } else > printf("\n"); > } > #endif > switch (argc) { > case 0: { > HYPERCALL_RES1; > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 \ > : HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > case 1: { > HYPERCALL_RES1; HYPERCALL_RES2; > HYPERCALL_ARG1(argv[0]); > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 HYPERCALL_OUT2 \ > : HYPERCALL_IN1 \ > , HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > case 2: { > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3; > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]); > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 HYPERCALL_OUT2 \ > HYPERCALL_OUT3 \ > : HYPERCALL_IN1 HYPERCALL_IN2 \ > , HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > case 3: { > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3; > HYPERCALL_RES4; > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]); > HYPERCALL_ARG3(argv[2]); > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 HYPERCALL_OUT2 \ > HYPERCALL_OUT3 HYPERCALL_OUT4 \ > : HYPERCALL_IN1 HYPERCALL_IN2 \ > HYPERCALL_IN3 \ > , HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > case 4: { > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3; > HYPERCALL_RES4; HYPERCALL_RES5; > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]); > HYPERCALL_ARG3(argv[2]); HYPERCALL_ARG4(argv[3]); > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 HYPERCALL_OUT2 \ > HYPERCALL_OUT3 HYPERCALL_OUT4 \ > HYPERCALL_OUT5 \ > : HYPERCALL_IN1 HYPERCALL_IN2 \ > HYPERCALL_IN3 HYPERCALL_IN4 \ > , HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > case 5: { > HYPERCALL_RES1; HYPERCALL_RES2; HYPERCALL_RES3; > HYPERCALL_RES4; HYPERCALL_RES5; HYPERCALL_RES6; > HYPERCALL_ARG1(argv[0]); HYPERCALL_ARG2(argv[1]); > HYPERCALL_ARG3(argv[2]); HYPERCALL_ARG4(argv[3]); > HYPERCALL_ARG5(argv[4]); > __asm__ volatile ( \ > HYPERCALL_LABEL \ > : HYPERCALL_OUT1 HYPERCALL_OUT2 \ > HYPERCALL_OUT3 HYPERCALL_OUT4 \ > HYPERCALL_OUT5 HYPERCALL_OUT6 \ > : HYPERCALL_IN1 HYPERCALL_IN2 \ > HYPERCALL_IN3 HYPERCALL_IN4 \ > HYPERCALL_IN5 \ > , HYPERCALL_PTR(hcall) \ > : HYPERCALL_CLOBBER \ > ); > HYPERCALL_RET(rv); > break; > } > default: > DPRINTF("%s: wrong number of arguments: %d\n", __func__, argc); > rv = -1; > break; > } > return (rv); > } > int > xen_getversion(struct xen_softc *sc) > { > char buf[16]; > int version; > ulong argv[2] = { XENVER_extraversion, (ulong)&buf[0] }; > int argc = 2; > memset(buf, 0, sizeof(buf)); > if ((version = xen_hypercall(sc, xen_version, 1, XENVER_version)) < 0) { > printf("%s: failed to fetch version\n", sc->sc_dev.dv_xname); > return (-1); > } > if (xen_hypercallv(sc, xen_version, argc, argv) < 0) { > printf("%s: failed to fetch extended version\n", > sc->sc_dev.dv_xname); > return (-1); > } > printf("%s: version %d.%d%s\n", sc->sc_dev.dv_xname, > version >> 16, version & 0xffff, buf); > return (0); > } > int > xen_getfeatures(struct xen_softc *sc) > { > struct xen_feature_info xfi; > ulong argv[2] = { XENVER_get_features, (ulong)&xfi }; > int argc = 2; > memset(&xfi, 0, sizeof(xfi)); > if (xen_hypercallv(sc, xen_version, argc, argv) < 0) { > printf("%s: failed to fetch features\n", sc->sc_dev.dv_xname); > return (-1); > } > sc->sc_features = xfi.submap; > printf("%s: features %b\n", sc->sc_dev.dv_xname, sc->sc_features, > "\20\014DOM0\013PIRQ\012PVCLOCK\011CBVEC\010GNTFLAGS\007HMA" > "\006PTUPD\005PAE4G\004SUPERVISOR\003AUTOPMAP\002WDT\001WPT"); > return (0); > } > #ifdef XEN_DEBUG > void > xen_print_info_page(void) > { > struct xen_softc *sc = xen_sc; > struct shared_info *s = sc->sc_ipg; > struct vcpu_info *v; > int i; > membar_sync(); > for (i = 0; i < XEN_LEGACY_MAX_VCPUS; i++) { > v = &s->vcpu_info[i]; > if (!v->evtchn_upcall_pending && !v->evtchn_upcall_mask && > !v->evtchn_pending_sel && !v->time.version && > !v->time.tsc_timestamp && !v->time.system_time && > !v->time.tsc_to_system_mul && !v->time.tsc_shift) > continue; > printf("vcpu%d:\n" > " upcall_pending=%02x upcall_mask=%02x pending_sel=%#lx\n" > " time version=%u tsc=%llu system=%llu\n" > " time mul=%u shift=%d\n" > , i, v->evtchn_upcall_pending, v->evtchn_upcall_mask, > v->evtchn_pending_sel, v->time.version, > v->time.tsc_timestamp, v->time.system_time, > v->time.tsc_to_system_mul, v->time.tsc_shift); > } > printf("pending events: "); > for (i = 0; i < nitems(s->evtchn_pending); i++) { > if (s->evtchn_pending[i] == 0) > continue; > printf(" %d:%#lx", i, s->evtchn_pending[i]); > } > printf("\nmasked events: "); > for (i = 0; i < nitems(s->evtchn_mask); i++) { > if (s->evtchn_mask[i] == 0xffffffffffffffffULL) > continue; > printf(" %d:%#lx", i, s->evtchn_mask[i]); > } > printf("\nwc ver=%u sec=%u nsec=%u\n", s->wc_version, s->wc_sec, > s->wc_nsec); > printf("arch maxpfn=%lu framelist=%lu nmi=%lu\n", s->arch.max_pfn, > s->arch.pfn_to_mfn_frame_list, s->arch.nmi_reason); > } > #endif /* XEN_DEBUG */ > int > xen_init_info_page(struct xen_softc *sc) > { > struct xen_add_to_physmap xatp; > paddr_t pa; > sc->sc_ipg = malloc(PAGE_SIZE, M_DEVBUF, M_NOWAIT | M_ZERO); > if (sc->sc_ipg == NULL) { > printf("%s: failed to allocate shared info page\n", > sc->sc_dev.dv_xname); > return (-1); > } > if (!pmap_extract(pmap_kernel(), (vaddr_t)sc->sc_ipg, &pa)) { > printf("%s: shared info page PA extraction failed\n", > sc->sc_dev.dv_xname); > free(sc->sc_ipg, M_DEVBUF, PAGE_SIZE); > return (-1); > } > xatp.domid = DOMID_SELF; > xatp.idx = 0; > xatp.space = XENMAPSPACE_shared_info; > xatp.gpfn = atop(pa); > if (xen_hypercall(sc, memory_op, 2, XENMEM_add_to_physmap, &xatp)) { > printf("%s: failed to register shared info page\n", > sc->sc_dev.dv_xname); > free(sc->sc_ipg, M_DEVBUF, PAGE_SIZE); > return (-1); > } > DPRINTF("%s: shared info page at va %p pa %#lx\n", sc->sc_dev.dv_xname, > sc->sc_ipg, pa); > return (0); > } > int > xen_init_cbvec(struct xen_softc *sc) > { > struct xen_hvm_param xhp; > if ((sc->sc_features & XENFEAT_CBVEC) == 0) > return (ENOENT); > xhp.domid = DOMID_SELF; > xhp.index = HVM_PARAM_CALLBACK_IRQ; > xhp.value = HVM_CALLBACK_VECTOR(LAPIC_XEN_VECTOR); > if (xen_hypercall(sc, hvm_op, 2, HVMOP_set_param, &xhp)) { > /* Will retry with the xspd(4) PCI interrupt */ > return (ENOENT); > } > DPRINTF("%s: registered callback IDT vector %d\n", > sc->sc_dev.dv_xname, LAPIC_XEN_VECTOR); > sc->sc_cbvec = 1; > return (0); > } > void > xen_intr(void) > { > /* stub */ > } (mikeb@) ~ xen.c ~ xenvar.h > Communicate the selected IDT vector to the Hypervisor > OK mlarkin, reyk (mikeb@) ~ xen.c ~ xenreg.h ~ xenvar.h > Add ability to establish virtual interrupts via Xen event > channel ports. > During boot, Xen will use polling mode, but once the system > enables interrupts after cpu_configure(), xen_intr_enable > will be called from the mountrook hook to unmask event ports. > OK mlarkin, mpi, reyk (mikeb@) ~ files.pv ~ xen.c ~ xenvar.h + xenstore.c > Driver for XenStore, the configuration storage > XenStore provides a hierarchical storage for Xen configuration > in a style of an OpenFirmware. Itself it's an interrupt driven > producer/consumer interface with two 1kb rings for input and > output. > It's required in order to do virtual device discovery and device > configuration (fetch MAC address, various parameters). > With input from and OK mlarkin, reyk (mikeb@) ~ xen.c > Implement a function to detach emulated devices (such as an em(4) > network interface) in order to attach a paravirtualized drivers > (such as Xen Netfront). > OK mlarkin (mikeb@) ~ xen.c ~ xenvar.h > Implements simple virtual device probing routine > Discussed with deraadt@, kettenis@, mpi@, OK mlarkin, mpi (mikeb@) dev/sbus ~ be.c ~ qe.c > No trailers has been the default and only option for 20 years, yet some > drivers still set IFF_NOTRAILERS while others do not. Remove all usage of > the flag from the drivers which in ancient times used it (and the modern > drivers which blindly copied it from those drivers of yore). > suggested by guenther. ok mpi (tedu@) dev/usb ~ uhidev.c > Match 3rd party Xbox 360 controllers, from Christian Heckendorf. > Tested by jeremy@ (mpi@) kern ~ kern_task.c > use struct task_list instead of TAILQ_HEAD(, task) (dlg@) ~ kern_task.c > tweak whitespace in struct definition. no functional change. (dlg@) net ~ if.c ~ if_var.h + ifq.c + ifq.h > split the interface send queue (struct ifqueue) implementation out. > the intention is to make it more clear what belongs to a transmit > queue and what belongs to an interface. > suggested by and ok mpi@ (dlg@) ~ if_var.h > if_stop is unused, so kill it. > ok mpi@ (dlg@) ~ if.c > Kill unused iftxlist. > ok dlg@ (mpi@) ~ if_vlan.c > vlan doenst have to handle SIOCGIFADDR cos the stack does it. > ok mpi@ (dlg@) nfs ~ nfs_vnops.c TAGGED OPENBSD_5_8 > Bring in fix for NFS panic from current. > ok deraadt@ (beck@) sys ~ task.h > +TAILQ_HEAD(task_list, task); (dlg@) ~ task.h > _SYS_TASKQ_H_ -> _SYS_TASK_H_ (dlg@) tmpfs ~ tmpfs_vnops.c > correct errant spacing (tedu@) ufs/ufs ~ ufs_vnops.c > correct errant spacing here before it continues spreading (tedu@) == usr.bin =========================================================== 09/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin calendar ~ day.c ~ io.c > Remove NULL-checks before free(). ok tb@ (mmcc@) doas ~ doas.1 ~ doas.c > Support -a <auth_style> in doas(1). Allows specifying a non-default auth > style, for example if you have "auth-doas=yubikey,passwd" in login.conf, > doas will usually want yubikey authentication, but will allow a fallback > of "doas -a passwd". > Avoids the need for sudo in a number of cases, at the expense of 5 added > lines of code (and one of those is only to avoid >80 columns). > Adapted from a diff by Renaud Allard, ok dlg@ tedu@ (sthen@) ~ doas.c > semarie noticed that auth failures don't set errno. just print a generic > message and leave it to the user to find the tea leaves. (tedu@) nc ~ netcat.c > pledge nc better - Load the certificate into memory and then do the pledge, > this allows us to drop the rpath fromt the nc pledge. > ok deraadt@, tedu@ (beck@) tmux ~ cmd-switch-client.c > Use ^= instead of a verbose alternative. ok nicm@ (mmcc@) ~ Makefile ~ cmd-attach-session.c ~ cmd-detach-client.c ~ cmd.c ~ server-client.c ~ session.c ~ tmux.1 ~ tmux.c ~ tmux.h + cmd-set-hook.c + hooks.c > Add hooks infrastructure, basic commands (set-hook, show-hooks) and a > couple of not very useful client hooks. This will eventually let > commands be run at various points and on notifications. Joint work with > Thomas Adam. (nicm@) ~ tmux.1 > Ed was meant to be El; (jmc@) ~ options.c ~ tmux.h > Spacing nits. (nicm@) ~ cmd-attach-session.c ~ cmd-break-pane.c ~ cmd-display-message.c ~ cmd-if-shell.c ~ cmd-list-buffers.c ~ cmd-list-clients.c ~ cmd-list-panes.c ~ cmd-list-sessions.c ~ cmd-list-windows.c ~ cmd-new-session.c ~ cmd-new-window.c ~ cmd-pipe-pane.c ~ cmd-run-shell.c ~ cmd-split-window.c ~ control-notify.c ~ format.c ~ names.c ~ server-client.c ~ status.c ~ tmux.h ~ window-choose.c ~ window-copy.c > Remove format_create_flags and just pass flags to format_create. (nicm@) wc ~ wc.1 ~ wc.c > UTF-8 support: implement -m for character counting > and use iswspace(3) for word counting. > Requires using getline(3) rather than read(2) > to make sure that characters aren't chopped to pieces. > Using feedback from millert@ on an earlier version. > Feedback and OK tedu@. (schwarze@) == usr.sbin ========================================================== 10/10 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin arp ~ arp.4 > jmc discovered more references to trailers. i think it's safe to remove > mention that they are no longer supported. the six people who know what > trailers are are surely aware they aren't support anymore. (tedu@) ~ arp.c > remove undocumented message about trailers (tedu@) authpf ~ authpf.c > Remove a NULL-check before free(). (mmcc@) mailwrapper ~ mailer.conf.5 > Update EXAMPLES to use smtpctl(8). (sunil@) rebound ~ rebound.c > more better fake replies. servfail is the correct response. (tedu@) smtpd ~ smtpd.c > Let smtpd shutdown gracefully with a zero exit code when the priv > process receives a SIGINT/SIGTERM. > Initial diff by nfnty <[email protected]> > Ok gilles@ jung@ millert@ (sunil@) vmctl ~ main.c ~ vmctl.8 ~ vmctl.c ~ vmctl.h > Add "vmctl console" to connect to a specified VM console by id. > Requested by mlarkin@ (reyk@) ~ main.c > vmctl console - id is not optional (reyk@) ~ main.c > style(9) says that is OK to not include sys/cdefs.h directly, as it > comes from sys/types.h (include-what-you-use doesn't know this policy). > Pointed out by Jan Schreiber (reyk@) vmd ~ vmd.c > make the -f option work as intended > ok reyk@ (jsg@) ~ vmd.c > when checking the config file with -n don't open /dev/vmm or require root > ok reyk@ (jsg@) ypserv ~ revnetgroup/parse_netgroup.c ~ ypserv/ypserv_db.c > Remove NULL-checks before free(). (mmcc@) =============================================================================== _______________________________________________ odc mailing list [email protected] http://www.squish.net/mailman/listinfo/odc
