OpenBSD cvs log

created 2020-07-29T15:31:00Z
begin 2020-07-16T00:00:00Z
end 2020-07-17T00:00:00Z
path src/sys
commits 31

date 2020-07-16T00:52:33Z
author kevlo
files src/sys/dev/pci/if_sis.c log diff annotate
message Initialize sis_ring_init() 'sis_rx_prod' and 'sis_rx_cons' to 0.

ok mpi@, deraadt@

date 2020-07-16T00:58:02Z
author dlg
files src/sys/dev/pci/if_ixl.c log diff annotate
message sc_atq_mtx is unused, so get rid of it

date 2020-07-16T03:04:50Z
author dlg
files src/sys/dev/pci/if_ixl.c log diff annotate
message use a mutex to serialise the test and set of ifp->if_link_state.

this was serialised by NET_LOCK, but now i get link state change
information in an interrupt context, so i shouldn't (can't) do that
anymore.

ok jmatthew@

date 2020-07-16T05:45:03Z
author jmatthew
files src/sys/dev/pci/if_mcx.c log diff annotate
message Remove the refill timeout and wait for interrupts to finish when
bringing the interface down.

prompted by a crash seen by Hrvoje Popovski
ok dlg@

date 2020-07-16T09:47:16Z
author kettenis
files src/sys/arch/powerpc64/powerpc64/pmap.c log diff annotate
message Since the page tables could be larger than 256MB allow for multiple
segments to map them.

date 2020-07-16T09:48:22Z
author jsg
files src/sys/dev/pci/drm/ttm/ttm_bo_vm.c log diff annotate
message drm/ttm: Fix dma_fence refcnt leak in ttm_bo_vm_fault_reserved

From Xiyu Yang
f5e6ec57e3cbe37cd3ef52d18de6be9953ee105a in linux 5.7.y/5.7.9
37cc4b95d13f311c04aa8e9daacca3905ad45ca7 in mainline linux

date 2020-07-16T09:50:39Z
author jsg
files src/sys/dev/pci/drm/ttm/ttm_bo.c log diff annotate
message drm/ttm: Fix dma_fence refcnt leak when adding move fence

From Xiyu Yang
bfd4297fd74ebb18d05044e49f1ff2fedd2ece8d in linux 5.7.y/5.7.9
11425c4519e2c974a100fc984867046d905b9380 in mainline linux

date 2020-07-16T09:53:49Z
author jsg
files src/sys/dev/pci/drm/drm_panel_orientation_quirks.c log diff annotate
message drm: panel-orientation-quirks: Add quirk for Asus T101HA panel

From Hans de Goede
e64e92fea2bf85d9f33304faf973c46859afd0f7 in linux 5.7.y/5.7.9
6c22bc18a3b93a38018844636557ad02e588e055 in mainline linux

date 2020-07-16T09:56:50Z
author jsg
files src/sys/dev/pci/drm/drm_panel_orientation_quirks.c log diff annotate
message drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003

From Hans de Goede
109b3b4e2a0f5bfda023a1b91b404fac31ba6808 in linux 5.7.y/5.7.9
a05caf9e62a85d12da27e814ac13195f4683f21c in mainline linux

date 2020-07-16T09:59:17Z
author jsg
files src/sys/dev/pci/drm/radeon/ci_dpm.c log diff annotate
message drm/radeon: fix double free

From Tom Rix
67e9648f20524ff6824ebeb26afea45f7d9c300d in linux 5.7.y/5.7.9
41855a898650803e24b284173354cc3e44d07725 in mainline linux

date 2020-07-16T10:01:41Z
author jsg
files src/sys/dev/pci/drm/i915/gt/intel_context.c log diff annotate
message drm/i915/gt: Pin the rings before marking active

From Chris Wilson
096b85c64987a0ef4fcc6ac0e3c3661573828df1 in linux 5.7.y/5.7.9
5a383d443b29a140094430f3ad1d02fa1acc2b80 in mainline linux

date 2020-07-16T10:03:44Z
author jsg
files src/sys/dev/pci/drm/i915/i915_debugfs.c log diff annotate
message drm/i915: Skip stale object handle for debugfs per-file-stats

From Chris Wilson
d073ed965cd908d320d49824dee02c80168f96a8 in linux 5.7.y/5.7.9
7dfbf8a07cf8c936b0d6cc810df6ae7923954d5b in mainline linux

date 2020-07-16T10:07:02Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_job.c log diff annotate
message drm/amdgpu: don't do soft recovery if gpu_recovery=0

From Marek Olsak
d7915047a1d59474d06789a9dd1925064969e080 in linux 5.7.y/5.7.9
f4892c327a8e5df7ce16cab40897daf90baf6bec in mainline linux

date 2020-07-16T10:09:22Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_psp.c log diff annotate
message drm/amdgpu: add TMR destory function for psp

From Huang Rui
2c41c968c6f6480860c67210815cadc6507f5014 in linux 5.7.y/5.7.9
c564b8601ae917086751d90f464d5f19d731ece7 in mainline linux

date 2020-07-16T10:11:33Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_psp.c log diff annotate
message drm/amdgpu: asd function needs to be unloaded in suspend phase

From Huang Rui
22ff658396b44606163ad0231e8215309a26d613 in linux 5.7.y/5.7.9
20303ec5d2165ee6344190274bc59118921f71d9 in mainline linux

date 2020-07-16T10:14:13Z
author jsg
files src/sys/dev/pci/drm/i915/i915_vma.c log diff annotate
message drm/i915: Drop vm.ref for duplicate vma on construction

From Chris Wilson
98762e5b00567622d57295d2d3389aea2c37be03 in linux 5.7.y/5.7.9
42723673a193d5f8e30dba6ea9826d42262a502b in mainline linux

date 2020-07-16T10:17:09Z
author jsg
files src/sys/dev/pci/drm/i915/i915_vma.c log diff annotate
message drm/i915: Also drop vm.ref along error paths for vma construction

From Chris Wilson
5e53344673fcf1df8ff52675ab0539fff26a8e29 in linux 5.7.y/5.7.9
cf1976b11372cac3b57fbae1831f66a4486355d3 in mainline linux

date 2020-07-16T12:38:43Z
author krw
files src/sys/scsi/scsiconf.c log diff annotate
message Beef up struct scsibus_softc to hold the information needed to
initialize the scsi_link's on the bus. After sucking this information
out of the "prototype" link provided by the scsibus_attach_arg, no
need to keep a pointer to that prototype.

date 2020-07-16T12:38:44Z
author krw
files src/sys/scsi/scsiconf.h log diff annotate
message Beef up struct scsibus_softc to hold the information needed to
initialize the scsi_link's on the bus. After sucking this information
out of the "prototype" link provided by the scsibus_attach_arg, no
need to keep a pointer to that prototype.

date 2020-07-16T12:57:30Z
author patrick
files src/sys/arch/arm64/arm64/acpi_machdep.c log diff annotate
src/sys/arch/arm64/arm64/intr.c log diff annotate
src/sys/arch/arm64/dev/acpipci.c log diff annotate
src/sys/arch/arm64/include/intr.h log diff annotate
message To be able to have intr_barrier() on arm64, we need to be able to
somehow gain access to the struct cpu_info * used to establish the
interrupt. One possibility is to store the pointer in the cookie
returned by the establish methods. A better way would be to ask
the interrupt controller directly to do barrier.

This means that all external facing interrupt establish functions
need to wrap the cookie in a common way. We already do this for
FDT-based interrupts. Also most PCI controllers already return
the cookie from the FDT API, which is already wrapped. So arm64's
acpi_intr_establish() and acpipci(4) now need to explicitly wrap
it, since they call ic->ic_establish directly, which does not wrap.

ok dlg@

date 2020-07-16T13:03:39Z
author patrick
files src/sys/arch/arm64/arm64/acpi_machdep.c log diff annotate
src/sys/arch/arm64/arm64/intr.c log diff annotate
src/sys/arch/arm64/dev/acpipci.c log diff annotate
src/sys/arch/arm64/include/intr.h log diff annotate
message Store struct cpu_info * in arm64's interrupt wrap. intr_barrier() can
already assume every cookie is wrapped and simply retrieve the pointer
from it. It's a bit of a layer violation though, since only the intc
should actually store that kind of information. This is good enough for
now, but I'm already cooking up a diff to resolve this.

ok dlg@

date 2020-07-16T14:44:55Z
author krw
files src/sys/scsi/cd.c log diff annotate
src/sys/scsi/mpath.c log diff annotate
src/sys/scsi/scsi_base.c log diff annotate
src/sys/scsi/scsi_ioctl.c log diff annotate
src/sys/scsi/scsiconf.c log diff annotate
src/sys/scsi/sd.c log diff annotate
src/sys/scsi/st.c log diff annotate
message Access scsibus_softc info (luns, adapter, adapter_target,
adapter_softc, adapter_buswidth) via link->bus rather than using
copies currently residing in the link.

date 2020-07-16T19:10:33Z
author kettenis
files src/sys/arch/powerpc64/dev/xive.c log diff annotate
message Reset firmware state upon reboot.

date 2020-07-16T19:37:58Z
author kettenis
files src/sys/arch/powerpc64/conf/files.powerpc64 log diff annotate
src/sys/arch/powerpc64/dev/kexec.c log diff annotate
src/sys/arch/powerpc64/dev/kexec_subr.S log diff annotate
src/sys/arch/powerpc64/include/conf.h log diff annotate
src/sys/arch/powerpc64/include/kexec.h log diff annotate
src/sys/arch/powerpc64/powerpc64/conf.c log diff annotate
message Add a pseudo-driver to "kexec" an OpenBSD/powerpc64 kernel. Heavily
based on the octboot driver that we use for octeon. To be used in the
bootloader kernel.

date 2020-07-16T19:41:03Z
author kettenis
files src/sys/arch/powerpc64/compile/BOOT/Makefile log diff annotate
src/sys/arch/powerpc64/conf/BOOT log diff annotate
message Add BOOT kernel config.

date 2020-07-16T19:48:58Z
author kettenis
files src/sys/arch/powerpc64/stand/Makefile log diff annotate
src/sys/arch/powerpc64/stand/Makefile.inc log diff annotate
src/sys/arch/powerpc64/stand/boot/Makefile log diff annotate
src/sys/arch/powerpc64/stand/rdboot/Makefile log diff annotate
src/sys/arch/powerpc64/stand/rdboot/cmd.c log diff annotate
src/sys/arch/powerpc64/stand/rdboot/cmd.h log diff annotate
src/sys/arch/powerpc64/stand/rdboot/disk.c log diff annotate
src/sys/arch/powerpc64/stand/rdboot/disk.h log diff annotate
src/sys/arch/powerpc64/stand/rdboot/rdboot.c log diff annotate
src/sys/arch/powerpc64/stand/rdboot/vars.c log diff annotate
message First stab at a bootloader for OpenBSD/powerpc64.
Based on the same principle (and mostly copied from) the bootloader
written by visa@ for OpenBSD/octeon.

Needed because the petitboot environment provided by the OpenPower
firmware is unsuitable for loading OpenBSD kernels properly.

date 2020-07-16T21:18:29Z
author krw
files src/sys/arch/luna88k/dev/mb89352.c log diff annotate
src/sys/arch/sparc64/dev/vdsk.c log diff annotate
src/sys/arch/sparc64/sparc64/autoconf.c log diff annotate
src/sys/dev/softraid.c log diff annotate
src/sys/dev/vscsi.c log diff annotate
src/sys/dev/ata/atascsi.c log diff annotate
src/sys/dev/atapiscsi/atapiscsi.c log diff annotate
src/sys/dev/ic/aac.c log diff annotate
src/sys/dev/ic/adv.c log diff annotate
src/sys/dev/ic/adw.c log diff annotate
message Access adapter softc via link->bus->sb_adapter_softc.

In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.

Removes last post-config uses of the copies of bus related
information in scsi_link.

date 2020-07-16T21:18:30Z
author krw
files src/sys/dev/ic/ahci.c log diff annotate
src/sys/dev/ic/aic6250.c log diff annotate
src/sys/dev/ic/aic6360.c log diff annotate
src/sys/dev/ic/aic79xx_openbsd.c log diff annotate
src/sys/dev/ic/aic7xxx_openbsd.c log diff annotate
src/sys/dev/ic/ami.c log diff annotate
src/sys/dev/ic/cac.c log diff annotate
src/sys/dev/ic/ciss.c log diff annotate
src/sys/dev/ic/gdt_common.c log diff annotate
src/sys/dev/ic/iha.c log diff annotate
src/sys/dev/ic/mfi.c log diff annotate
src/sys/dev/ic/mpi.c log diff annotate
src/sys/dev/ic/ncr53c9x.c log diff annotate
src/sys/dev/ic/nvme.c log diff annotate
src/sys/dev/ic/oosiop.c log diff annotate
src/sys/dev/ic/osiop.c log diff annotate
src/sys/dev/ic/qla.c log diff annotate
src/sys/dev/ic/qlw.c log diff annotate
src/sys/dev/ic/siop.c log diff annotate
src/sys/dev/ic/trm.c log diff annotate
src/sys/dev/ic/twe.c log diff annotate
src/sys/dev/ic/uha.c log diff annotate
src/sys/dev/ic/wd33c93.c log diff annotate
src/sys/dev/isa/wds.c log diff annotate
src/sys/dev/pci/arc.c log diff annotate
src/sys/dev/pci/ips.c log diff annotate
src/sys/dev/pci/mfii.c log diff annotate
src/sys/dev/pci/mpii.c log diff annotate
src/sys/dev/pci/qle.c log diff annotate
src/sys/dev/pci/vmwpvs.c log diff annotate
src/sys/dev/pv/hvs.c log diff annotate
src/sys/dev/pv/vioblk.c log diff annotate
src/sys/dev/pv/vioscsi.c log diff annotate
src/sys/dev/pv/xbf.c log diff annotate
message Access adapter softc via link->bus->sb_adapter_softc.

In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.

Removes last post-config uses of the copies of bus related
information in scsi_link.

date 2020-07-16T21:18:31Z
author krw
files src/sys/dev/sdmmc/sdmmc_scsi.c log diff annotate
src/sys/dev/usb/umass_scsi.c log diff annotate
message Access adapter softc via link->bus->sb_adapter_softc.

In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.

Removes last post-config uses of the copies of bus related
information in scsi_link.

date 2020-07-16T21:49:41Z
author patrick
files src/sys/dev/pci/if_mcx.c log diff annotate
message Pass the interrupt handler cookie instead of the pointer to it
to intr_barrier(9). Fixes mysterious panics seen while working
on intr_barrier(9) for arm64.

ok jmatthew@

date 2020-07-16T23:06:43Z
author cheloha
files src/sys/kern/kern_tc.c log diff annotate
message adjtime(2): distribute skew along arbitrary period on runtime clock

The adjtime(2) adjustment is applied at up to 5000ppm/sec from
tc_windup(). At the start of each UTC second, ntp_update_second() is
called from tc_windup() and up to 5000ppm worth of skew is deducted
from the timehands' th_adjtimedelta member and moved to the
th_adjustment member. The resulting th_adjustment value is then mixed
into the th_scale member and thus the system UTC time is slowly nudged
in a particular direction.

This works pretty well. The only issues have to do with the use of
the the edge of the UTC second as the start of the ntp_update_second()
period:

1. If the UTC clock jumps forward we can get stuck in a loop calling
ntp_update_second() from tc_windup(). We work around this with
a magic number, LARGE_STEP. If the UTC clock jumps forward more
than LARGE_STEP seconds we truncate the number of iterations to 2.

Per the comment in tc_windup(), we do 2 iterations instead of 1
iteration to account for a leap second we may have missed. This is
an anachronism: the OpenBSD kernel does not handle leap seconds
anymore.

Such jumps happen during settimeofday(2), during boot when we jump
the clock from zero to the RTC time, and during resume when we jump
the clock to the RTC time (again). They are unavoidable.

2. Changes to adjtime(2) are applied asynchronously. For example, if
you try to cancel the ongoing adjustment...

struct timeval zero = { 0, 0 };

adjtime(&zero, NULL);

... it can take up to one second for the adjustment to be cancelled.
In the meantime, the skew continues. This delayed application is not
intuitive or documented.

3. Adjustment is deducted from th_adjtimedelta across suspends of fewer
than LARGE_STEP seconds, even though we do not skew the clock while
we are suspended. This is unintuitive, incorrect, and undocumented.

We can avoid all of these problems by applying the adjustment along
an arbitrary period on the runtime clock instead of the UTC clock.

1. The runtime clock doesn't jump arbitrary amounts, so we never get
stuck in a loop and we don't need a magic number to test for this
possibility. With the removal of the magic number LARGE_STEP we
can also remove the leap second handling from the tc_windup() code.

2. With a new timehands member, th_next_ntp_update, we can track when
the next ntp_update_second() call should happen on the runtime clock.
This value can be updated during the adjtime(2) system call, so
changes to the skew happen *immediately* instead of up to one second
after the adjtime(2) call.

3. The runtime clock does not jump across a suspend: no skew is
deducted from th_adjtimedelta for any time we are offline and
unable to adjust the clock.

otto@ says the use of the runtime clock should not be a problem for
ntpd(8) or the NTP algorithm in general.