OpenBSD cvs log

created 2019-01-31T09:53:19Z
begin 2018-01-06T00:00:00Z
end 2018-01-07T00:00:00Z
path src/sys
commits 13

date 2018-01-06T03:11:04Z
author dlg
files src/sys/dev/pci/if_msk.c log diff annotate
src/sys/dev/pci/if_mskvar.h log diff annotate
message rework the transmit and receive paths to address reliability issues.

phessler@ has been having trouble with msk on overdrive 1000s. some
of the issues relate to the driver not coping with exhaustion of
mbufs for the rx ring, the other issues are corruption of the mcl9k
pool that msk uses.

this diff adds a timeout that the rx refill code uses when the rx
ring is empty and cannot be filled. it'll periodically retry the
ring refill until it can get some mbufs in the air again.

the current code made hunting for the mcl9k issue too hard, so this
rewrites it to be simpler and more like other drivers. there's now
just arrays of mbuf pointers and dmamaps to shadow the hardware
ring entries, and producer and consumer indexes. what was there
before had linkes lists of something to hold mbuf pointers and
dmamaps, and some way to go from the ring to go back to that. i
think, it was hard to tell what was happening.

this also copies the ADDR64 handling on the tx ring to the rx ring.
this potentially makes more rx descriptors available, but that can
happen later.

in hindsight the mcl9k problem could have been from letting if_rxr
allocate the entier ring. if every descriptor was filled, the chip
may have run around the ring when it shouldnt have. giving rxr one
less descriptor than there is on the ring may have fixed the problem
too.

this work also makes it easier to make msk mpsafe.

tested by an ok phessler@
ok kettenis@ deraadt@

date 2018-01-06T06:30:11Z
author visa
files src/sys/arch/mips64/mips64/pmap.c log diff annotate
message Remove redundant zeroing and dead code.

date 2018-01-06T11:23:14Z
author kettenis
files src/sys/dev/fdt/sxitwi.c log diff annotate
message Set the proper bus clock rate based on the "clock-frequency" property and
the rate of the parent clock. If the "clock-frequency" property isn't
present, use the default standard mode clock of 100kHz.

date 2018-01-06T11:48:06Z
author kettenis
files src/sys/arch/armv7/conf/GENERIC log diff annotate
message Enable sxitemp(4).

date 2018-01-06T13:04:47Z
author kettenis
files src/sys/dev/fdt/files.fdt log diff annotate
src/sys/dev/fdt/sxits.c log diff annotate
message Add sxits(4), a driver for the temperature sensor on the Allwinner A10/A20
touchpad controller.

date 2018-01-06T13:05:20Z
author kettenis
files src/sys/arch/armv7/conf/GENERIC log diff annotate
message Enable sxits(4).

date 2018-01-06T18:51:20Z
author jcs
files src/sys/dev/pckbc/pckbd.c log diff annotate
message pckbd: don't change translation mode if controller is in table 2

This was changed a decade ago to forcibly try table 3 first in order
to make some now-long-gone hardware work.

Newer Lenovo machines seem to have trouble being asked to change
modes which manifests as a long boot delay as it waits for each
request to timeout, or by causing the keyboard to generate junk when
typing.

Assume table 2 by default and just leave it alone if it's already
there. This is how Linux has operated for quite a while and seems
to help on these Lenovo machines.

Tested by a few with these machines and has been in snaps for a bit.

date 2018-01-06T20:14:01Z
author kettenis
files src/sys/dev/pci/pcidevs log diff annotate
message Add Silicon Motion SM2260 NVMe.

date 2018-01-06T20:14:30Z
author kettenis
files src/sys/dev/pci/pcidevs.h log diff annotate
message regen

date 2018-01-06T20:14:31Z
author kettenis
files src/sys/dev/pci/pcidevs_data.h log diff annotate
message regen

date 2018-01-06T20:31:03Z
author kettenis
files src/sys/dev/fdt/rkpcie.c log diff annotate
message Don't advertise L0s if the "aspm-no-l0s" property is present. Base available
bus numbers on the "bus-range" property. Create outbound translations based
on the "ranges" property.

date 2018-01-06T21:35:45Z
author stsp
files src/sys/arch/sparc64/dev/vldcp.c log diff annotate
message Fix an interrupt storm condition in vldcp(8) (sparc64).

If the Rx channel goes down with pending data on the ring, toss the pending
data to ensure that the firmware's rx ring head index matches the rx ring
tail index. Otherwise we trigger an interrupt storm since vldcpread() never
consumes pending data while the channel is down, and the firmware keeps
triggering the interrupt until all data on the ring is consumed.

Interrupt storm observed and fix tested on a T5220 (which can now run
ldom guests; without this fix starting ldomd would trigger the problem).

ok kettenis@

date 2018-01-06T22:03:12Z
author guenther
files src/sys/arch/amd64/amd64/locore.S log diff annotate
src/sys/arch/amd64/amd64/machdep.c log diff annotate
src/sys/arch/amd64/include/frameasm.h log diff annotate
message Handle %gs like %[def]s and reset set it in cpu_switchto() instead of on
every return to userspace.

ok kettenis@ mlarkin@