OpenBSD cvs log

created 2021-03-09T19:47:53Z
begin 2021-03-01T00:00:00Z
end 2021-03-02T00:00:00Z
path src/sys
commits 8

date 2021-03-01T09:09:35Z
author mpi
files src/sys/uvm/uvm_fault.c log diff annotate
message Move the top part of uvm_fault_lower(), the lookup, in its own function.

The name and logic come from NetBSD in order to reduce the difference
between the two code bases.

No functional change intended.

ok tb@

date 2021-03-01T09:13:33Z
author mpi
files src/sys/uvm/uvm_pdaemon.c log diff annotate
message If an anon is associated with a page, acquire its lock before any modification.

This change should have been part of the previous anon-locking diff and is
necessary to run the top part of uvm_fault() unlocked.

ok jmatthew@

date 2021-03-01T11:05:42Z
author bluhm
files src/sys/net/if_bridge.c log diff annotate
src/sys/net/pf.c log diff annotate
src/sys/net/pf_norm.c log diff annotate
src/sys/netinet/ip_output.c log diff annotate
src/sys/netinet/ip_var.h log diff annotate
message Refactor ip_fragment() and ip6_fragment(). Use a mbuf list to
simplify the handling of the fragment list. Now the functions
ip_fragment() and ip6_fragment() always consume the mbuf. They
free the mbuf and mbuf list in case of an error and take care about
the counter. Adjust the code a bit to make v4 and v6 look similar.
Fixes a potential mbuf leak when pf_route6() called pf_refragment6()
and it failed. Now the mbuf is always freed by ip6_fragment().
OK dlg@ mvs@

date 2021-03-01T11:05:43Z
author bluhm
files src/sys/netinet6/ip6_id.c log diff annotate
src/sys/netinet6/ip6_output.c log diff annotate
src/sys/netinet6/ip6_var.h log diff annotate
message Refactor ip_fragment() and ip6_fragment(). Use a mbuf list to
simplify the handling of the fragment list. Now the functions
ip_fragment() and ip6_fragment() always consume the mbuf. They
free the mbuf and mbuf list in case of an error and take care about
the counter. Adjust the code a bit to make v4 and v6 look similar.
Fixes a potential mbuf leak when pf_route6() called pf_refragment6()
and it failed. Now the mbuf is always freed by ip6_fragment().
OK dlg@ mvs@

date 2021-03-01T20:49:20Z
author patrick
files src/sys/dev/fdt/rkpcie.c log diff annotate
message The ep-gpios property is optional on the Rockchip PCIe controller.
While there, enable the different voltage regulators and set the
PHY's assigned clocks. This makes PCIe work on the NanoPi R4S.

Tested by kurt@ on Rock Pi N10 and ROCKPro64
ok kurt@ kettenis@

date 2021-03-01T21:03:24Z
author patrick
files src/sys/dev/fdt/dwpcie.c log diff annotate
message Transactions on the AXI bus contain a Stream ID. SMMUs filter
based on Stream IDs. On the Armada 8040 these Stream IDs can
be configured in different registers. The PCIe controller has
a register which maps root port, bus, dev and func number to
the Stream ID. This should be set up by TF-A firmware, but on
the 8040 the current images don't do this. For chips with more
than one PCIe controller this register must be setup correctly
depending on the implementation, but on the 8040 there only is
one controller, so we can configure a fixed value to match what
is defined in the device tree. This allows the SMMU to properly
track the PCIe controller's transactions.

ok kettenis@

date 2021-03-01T21:35:03Z
author patrick
files src/sys/arch/arm64/dev/smmu.c log diff annotate
src/sys/arch/arm64/dev/smmu_fdt.c log diff annotate
src/sys/arch/arm64/dev/smmuvar.h log diff annotate
message Instead of sprinkling the device's DMA tag, always return a new DMA tag
which is based on the IOMMU's. If you think about it, using the IOMMU's
DMA tag makes more sense because it is the IOMMU that does the actual DMA.
Noticed while debugging, since the SMMU's map function was called twice:
once for the PCI device, and once for its ppb(4). As the transaction has
the PCI device's Stream ID, not the ppb(4)'s, this would be useless work.

Suggested by kettenis@

date 2021-03-01T21:38:20Z
author patrick
files src/sys/arch/arm64/dev/smmu.c log diff annotate
message Update the MSI addresses for the Armada 8040. This chunk will only be
there until we have a proper way of making the MSI pages available.