OpenBSD cvs log

created 2021-11-21T19:41:42Z
begin 2021-10-06T00:00:00Z
end 2021-10-13T00:00:00Z
path src/sys
commits 38

date 2021-10-06T12:50:10Z
author visa
files src/sys/arch/armv7/armv7/armv7_machdep.c log diff annotate
src/sys/arch/armv7/stand/efiboot/conf.c log diff annotate
src/sys/arch/armv7/stand/efiboot/efiboot.c log diff annotate
message Add openbsd,dma-constraint property to /chosen node on armv7

On the Zynq-7000, the DMA constraint has to be adjusted because many
bus masters are unable to access the lowest part of RAM.

OK patrick@ kettenis@

date 2021-10-06T13:35:55Z
author stsp
files src/sys/dev/pci/if_iwm.c log diff annotate
message Make sure iwm(4) uses the HT frame format only for data frames.
Non-data frames are not supposed to use HT.

This change is for code correctness and does not fix any known issue.
And it applies only if the Tx rate has been fixed for testing purposes
with a command such as 'ifconfig iwm0 media HT-MCS13 mode 11n'.

ok mpi@

date 2021-10-06T13:36:47Z
author stsp
files src/sys/dev/pci/if_iwm.c log diff annotate
src/sys/dev/pci/if_iwx.c log diff annotate
message Allow AUTH->AUTH state transitions in the iwm(4) and iwx(4) drivers again.

AUTH->AUTH state transitions happen if the access point uses band-steering.
This was originally implemented to fix interop with some Aruba APs, and
was probably broken by my recent CVS commit XeKkqPoaUCklmgtC ("prevent
attempts to transition towards the same state").

ok mpi@

date 2021-10-06T15:46:03Z
author claudio
files src/sys/arch/alpha/alpha/machdep.c log diff annotate
src/sys/arch/amd64/amd64/machdep.c log diff annotate
src/sys/arch/arm/arm/sig_machdep.c log diff annotate
src/sys/arch/arm64/arm64/sig_machdep.c log diff annotate
src/sys/arch/hppa/hppa/machdep.c log diff annotate
src/sys/arch/i386/i386/machdep.c log diff annotate
src/sys/arch/m88k/m88k/sig_machdep.c log diff annotate
src/sys/arch/macppc/macppc/machdep.c log diff annotate
src/sys/arch/mips64/mips64/sendsig.c log diff annotate
src/sys/arch/powerpc64/powerpc64/machdep.c log diff annotate
src/sys/arch/riscv64/riscv64/sig_machdep.c log diff annotate
src/sys/arch/sh/sh/sh_machdep.c log diff annotate
src/sys/arch/sparc64/sparc64/machdep.c log diff annotate
src/sys/kern/kern_sig.c log diff annotate
src/sys/sys/signalvar.h log diff annotate
message Change sendsig() interface so that the MD code does not need to access
data from struct process anymore. This changes how siginfo and onstack
are accessed and make sendsig() more MP friendly.
With and OK semarie@ OK kettenis@

date 2021-10-07T03:39:35Z
author jsg
files src/sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c log diff annotate
message drm/amd/display: Pass PCI deviceid into DC

From Charlene Liu
c331fad63b6d527193ae8b7c056b2f10fef53c81 in linux 5.10.y/5.10.71
d942856865c733ff60450de9691af796ad71d7bc in mainline linux

date 2021-10-07T03:42:00Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/gfx_v9_0.c log diff annotate
message drm/amdgpu: correct initial cp_hqd_quantum for gfx9

From Hawking Zhang
9f382e1edf90ae03be43dbd4976c2a332cd7ce2d in linux 5.10.y/5.10.71
9f52c25f59b504a29dda42d83ac1e24d2af535d4 in mainline linux

date 2021-10-07T03:44:00Z
author jsg
files src/sys/dev/pci/drm/i915/i915_request.c log diff annotate
message drm/i915/request: fix early tracepoints

From Matthew Auld
d35d95e8b9da638d27bce9552262e0c486138343 in linux 5.10.y/5.10.71
c83ff0186401169eb27ce5057d820b7a863455c3 in mainline linux

date 2021-10-07T08:15:04Z
author stsp
files src/sys/dev/pci/if_iwm.c log diff annotate
src/sys/dev/pci/if_iwmvar.h log diff annotate
message Make our old BSSID available to iwm_newstate() when roaming.

ic_bss->ni_bssid has already been overwritten once we enter
iwm_newstate() to perform the state transitions necessary for
roaming to our new access point (RUN->AUTH->ASSOC->RUN).

We do however use the BSSID in commands sent to firmware.
Cache our BSSID in struct iwm_node such that firmware commands
keep using the old BSSID while we are still tearing things down.
Switch to the new BSSID only once we start back up in iwm_auth().
This should be consistent from the firmware's point of view.

ok mpi@

date 2021-10-07T08:21:22Z
author claudio
files src/sys/arch/hppa/hppa/trap.c log diff annotate
message trapsignal() can be called without KERNEL_LOCK, adjust code accordingly.
OK mpi@

date 2021-10-07T08:51:00Z
author mpi
files src/sys/kern/kern_synch.c log diff annotate
message Remove the assertion that `curproc' must be SONPROC if found on the sleepqueue.

If `curproc' finds itself on the sleepqueue inside wakeup(9) it is obviously
being executed. Such wakeup(9) currently happens inside the critical section
of the SCHED_LOCK(), generally before cpu_switchto(). However `p_stat' is
changed many operations before cpu_switchto() and the KASSERT() isn't helpful
at catching real bugs.

One example of this is a call to rwsleep() that calls wakeup() via rw_exit()
before sleep_finish(), contented futex(2) triggers that a lot.

Another example are dt(4)'s scheduler TRACEPOINT() in setrunqueue() and
mi_switch().

Suggested by and ok kettenis@

date 2021-10-07T12:26:09Z
author stsp
files src/sys/net80211/ieee80211_node.c log diff annotate
message Send a probe request to our new AP when we are about to roam to it.

Tested by fkr on iwx ax200/ax201 and myself on iwm 8265.
Also tested by florian and bket as part of a larger diff.

ok mpi@

date 2021-10-07T12:31:03Z
author visa
files src/sys/arch/mips64/include/reg.h log diff annotate
message Remove a stale comment.

date 2021-10-07T12:32:10Z
author visa
files src/sys/arch/mips64/include/reg.h log diff annotate
message Use tabs instead of spaces.

date 2021-10-07T12:40:16Z
author visa
files src/sys/arch/mips64/include/pcb.h log diff annotate
src/sys/arch/mips64/mips64/genassym.cf log diff annotate
message Remove struct members that were used by the R4000 EoP workaround.

date 2021-10-07T13:08:17Z
author visa
files src/sys/arch/mips64/include/cpu.h log diff annotate
src/sys/arch/mips64/mips64/tlbhandler.S log diff annotate
message Remove unused TLB routines.

date 2021-10-07T13:34:20Z
author kettenis
files src/sys/arch/arm64/dev/aplpcie.c log diff annotate
message Use correct index variable.

pointed out by patrick@ (with the help of clang)
ok patrick@

date 2021-10-07T14:11:32Z
author robert
files src/sys/dev/pci/azalia_codec.c log diff annotate
message remove quirks for ALC887 because they were only causing trouble on my
machine at least; let's see how others are; ok ratchov@

date 2021-10-08T08:34:09Z
author claudio
files src/sys/ufs/mfs/mfs_vnops.c log diff annotate
message curproc can't be NULL here. So simplify code accordingly.
OK mpi@

date 2021-10-08T09:22:10Z
author stsp
files src/sys/net80211/ieee80211_node.c log diff annotate
message Revert my previous commit to ieee80211_node.c (CVS commit Hne35XgzezGa9zmv).

Sending frames from ieee80211_node_join_bss() won't work as expected.
I missed that IEEE80211_SEND_MGMT() calls if_start() immediately after
queueing the management frame. This means the probe request is being
sent in a state where, while ic_bss represents our new AP, the driver
did not yet have a chance to move the device over to our new AP.

The auth request for the new AP is sent from ieee80211_newstate() which
runs after the driver has reconfigured the device. If want to send a
probe request to the new AP then we would need to send it at that point,
before the auth frame gets sent.

date 2021-10-09T01:01:09Z
author deraadt
files src/sys/arch/armv7/conf/RAMDISK log diff annotate
message grow media for additional firmwares

date 2021-10-09T08:38:13Z
author jmatthew
files src/sys/dev/pci/if_aq_pci.c log diff annotate
message No need to enable bus mastering, it's already done for us.

from Brad

date 2021-10-09T14:47:02Z
author deraadt
files src/sys/dev/vnd.c log diff annotate
message placing the same vnd underneath a vnd (with VNDIOCSET) is a lock violation,
but other circumstances are also bad, so let's block all vnd on top of vnd.
While here, fix some toctou multiple-copyin of the path, and restructure
the ioctl defer all softc updates to the end.
ok mpi

date 2021-10-10T16:20:37Z
author kettenis
files src/sys/dev/fdt/psci.c log diff annotate
message Apparently it is possible for firmware to indicate that SMCCC_VERSION is
implemented but have that call return NOT_SUPPORTED. Makes no sense,
but the SMCCC standard documents this and tells us to treat this as v1.0.
Change the code accordingly. Turn a few checks that should always be true
into KASSERTs to keep the control flow simple.

ok patrick@

date 2021-10-10T16:23:17Z
author kettenis
files src/sys/arch/arm64/dev/acpipci.c log diff annotate
message Only check whether we have an MSI interrupt controller when we try to
establish an MSI or MSI-X interrupt. Fixes establishing legacy INTx
interrupts on machines without a (usable) MSI interrupt controller.

ok patrick@

date 2021-10-10T21:54:50Z
author kettenis
files src/sys/arch/arm64/dev/acpipci.c log diff annotate
message Don't advertise MSI support if we don't have an MSI interrupt controller.

ok patrick@

date 2021-10-11T09:01:05Z
author stsp
files src/sys/dev/ic/ar5008.c log diff annotate
src/sys/dev/pci/if_iwm.c log diff annotate
src/sys/dev/pci/if_iwn.c log diff annotate
message Add support for 40MHz channels to net80211 RA.

For the moment we use either the 40MHz rate set or the 20 MHz one,
depending on whether our peer supports 40MHz channels.
If this turns out to be suboptimal we could probe the 40MHz and 20MHz
rate sets separately to detect which one works better.

The same applies to use of the short guard interval (SGI), which is
either always on or off at the moment. Again, probing for this could
be added later if needed.

date 2021-10-11T09:01:06Z
author stsp
files src/sys/net80211/ieee80211.c log diff annotate
src/sys/net80211/ieee80211_node.h log diff annotate
src/sys/net80211/ieee80211_proto.c log diff annotate
src/sys/net80211/ieee80211_ra.c log diff annotate
src/sys/net80211/ieee80211_ra.h log diff annotate
src/sys/net80211/ieee80211_var.h log diff annotate
message Add support for 40MHz channels to net80211 RA.

For the moment we use either the 40MHz rate set or the 20 MHz one,
depending on whether our peer supports 40MHz channels.
If this turns out to be suboptimal we could probe the 40MHz and 20MHz
rate sets separately to detect which one works better.

The same applies to use of the short guard interval (SGI), which is
either always on or off at the moment. Again, probing for this could
be added later if needed.

date 2021-10-11T09:02:01Z
author stsp
files src/sys/net80211/ieee80211_input.c log diff annotate
src/sys/net80211/ieee80211_var.h log diff annotate
message Monitor 20/40 MHz channel width changes in beacons sent by our access point
and notify drivers when the channel width has changed.

date 2021-10-11T09:03:22Z
author stsp
files src/sys/dev/pci/if_iwm.c log diff annotate
src/sys/dev/pci/if_iwmreg.h log diff annotate
src/sys/dev/pci/if_iwmvar.h log diff annotate
message Add support for 802.11n 40MHz channels to the iwm(4) driver.

According to 11n MCS index tables our maximum data rate is now
300 Mbit/s at MCS 15, excluding protocol overhead. I have measured
up to 200Mbit/s of effective throughput on clean 5GHz channels.

The driver enables use of 40MHz channels automatically as long as the
access point announces support for such channels in its beacons.
In case 40MHz transmissions fail we ask firmware to retry with a
20MHz transmission.

There is no integration with ifconfig yet, so use of 40MHz is not yet
displayed there. In the meantime, tcpdump(8) can be used to check if
the current access point supports 40MHz:
tcpdump -n -i iwm0 -v -y IEEE802_11_RADIO -s 4096 type mgt and subtype beacon
Channel width is displayed in the HT operation information element, where
a 40MHz channels looks like this: htop=<40MHz chan X:Y ...>

Tested:
7260: florian, bcallah
7265: landry
8260: bket
8265: stsp, abieber, Matthias Schmidt, Josh Rickmar, empee on mastodon
9560: stsp

date 2021-10-12T07:37:42Z
author mpi
files src/sys/uvm/uvm_vnode.c log diff annotate
src/sys/uvm/uvm_vnode.h log diff annotate
message Revert the fix for the deadlock between uvn_io() and uvn_flush().

This fix (ab)use the vnode lock to serialize access to some fields of
the corresponding pages associated with UVM vnode object and this will
create new deadlocks with the introduction of a per-uobj lock.

ok anton@

date 2021-10-12T07:38:22Z
author mpi
files src/sys/uvm/uvm_fault.c log diff annotate
src/sys/uvm/uvm_pager.h log diff annotate
src/sys/uvm/uvm_vnode.c log diff annotate
message Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault.

Do not allow a faulting thread to sleep on a contended vnode lock to prevent
lock ordering issues with upcoming per-uobj lock.

Also reduce the sleep value for VM_PAGER_AGAIN from 1sec to 5nsec to not add
visible slowdown when starting a multi-threaded application with threads that
fault on the same vnode (chromium, firefox, etc).

Tested by anton@, tb@, robert@ and gnezdo@

ok anton@, tb@

Reported-by: [email protected]

date 2021-10-12T10:44:33Z
author stsp
files src/sys/dev/pci/if_iwx.c log diff annotate
message Remove code which was needed to support old firmware images from iwx(4).

Tested with cc-a0-63 and QuZ-a0-hr-b0-63 firmware by myself.
Tested with Qu-c0-hr-b0-63 firmware by Fredrik Engberg.

date 2021-10-12T10:45:21Z
author stsp
files src/sys/dev/pci/if_iwx.c log diff annotate
message Explicitly stop iwx(4) Rx block ack when roaming between access points.

This is similar to a recent fix committed to iwm(4).
Unlike iwm(4) we do not need to disable Tx aggregation queues in iwx(4).
Attempting to do so would cause fatal firmware errors.

Tested by jmc@ and myself.

date 2021-10-12T10:46:57Z
author stsp
files src/sys/dev/pci/if_iwx.c log diff annotate
src/sys/dev/pci/if_iwxvar.h log diff annotate
message Make our old BSSID available to iwx_newstate_task() when roaming.

ic_bss->ni_bssid has already been overwritten once we enter
iwx_newstate_task() to perform the state transitions necessary
for roaming to our new access point (RUN->AUTH->ASSOC->RUN).

We do however use the BSSID in commands sent to firmware.
Cache our BSSID in struct iwx_node such that firmware commands
keep using the old BSSID while we are still tearing things down.
Switch to the new BSSID only once we start back up in iwx_auth().
This should be consistent from the firmware's point of view.

Same fix as committed for iwm(4) recently.

date 2021-10-12T11:20:32Z
author landry
files src/sys/dev/pci/if_iwm.c log diff annotate
message iwm(4): revert to use firmware v17 on Intel AC 7265.

fixes instability issues seen on X1 carbon gen3 (hw rev 0x210) by
anton@, mpi@ and myself.
diff from stsp@
ok mpi@ stsp@

date 2021-10-12T18:06:15Z
author kettenis
files src/sys/arch/powerpc64/include/pmap.h log diff annotate
src/sys/arch/powerpc64/powerpc64/pmap.c log diff annotate
message Add (minimal) accounting for wired pages in userland pmaps.
This enables enforcing of RLIMIT_MEMLOCK on powerpc64.

ok mpi@

date 2021-10-12T18:16:51Z
author kettenis
files src/sys/uvm/uvm_object.c log diff annotate
src/sys/uvm/uvm_object.h log diff annotate
message Introduce a dummy uvm_obj_destroy() interface. This function will be
used in the near future (by mpi@) to improve the locking for uvm objects.
Introducing this function now will me allow me to call it in the
appropriate place in the drm code.

ok mpi@, jsg@

date 2021-10-12T18:22:04Z
author kettenis
files src/sys/dev/pci/drm/drm_gem.c log diff annotate
src/sys/dev/pci/drm/ttm/ttm_bo_vm.c log diff annotate
message Remove misleading uvm reference counting that isn't actually used.
Make sure uvm_obj_init() is only called once. Call uvm_obj_destroy()
when we release the GEM object that wraps an uvm object for which we
called uvm_obj_init().

ok mpi@, jsg@