Age | Commit message (Collapse) | Author |
|
OK henning@ benno@
|
|
Sort of a port from freebsd, but I had to write all the interesting bits
myself. Not very complete yet, but good enough to commit over.
ok kettenis@ deraadt@
|
|
|
|
as implemented in the SolidRun Clearfog and Turris Omnia.
ok kettenis@
|
|
ok kettenis@
|
|
controllers.
ok kettenis@
|
|
ok kettenis@
|
|
extension to the GIC controller, which is represented as subnode in the
device tree. There can be multiple GICv2Ms, so it makes sense to attach
those to ampintc(4) as some kind of simplebus. The GICv2M is simply an
interrupt generator that can be used by PCIe devices to ring the door
bell. There is no need for further configuration, we only need to find
out which SPIs we are allowed to use for MSI and to register an edge
triggered interrupt on a (randomly) allocated SPI.
Implement support for interrupt types. The GIC only seems to support
level triggered active-high or egdge triggered low-to-high interrupts.
We currently always configure them to be level triggered, which is a
sane default for most controllers. Since MSI interupts on the GIC are
edge triggered, we need to be able to parse the type information and to
configure the interrupt correspondingly.
ok kettenis@
|
|
will be used by the PCIe controller to set up the memory regions for the
PCIe devices. Also export the PCIe IO and MEM address regions. These
will be used to setup the PCIe extents.
ok kettenis@
|
|
the memory in uvm. Another process could use the false 0 then. To
be on the safe side, protect all access to ku_indx and ku_pagecnt
with a mutex. Update ku_indx and ku_pagecnt before calling
uvm_km_free(). Update ksp after uvm_km_free() to keep accounting
correct.
tested by sthen@; OK mpi@ visa@ deraadt@
|
|
ok sthen@
|
|
ok mlarkin@ mortimer@
|
|
ok beck@ deraadt@ guenther@ mpi@
|
|
|
|
|
|
ok benno@ mpi@
|
|
ok denis@
|
|
to ioctl(TIOCSPGRP). The ioctl handlers expect a pointer to an int, so
read the argument into a local int variable and pass the variable's
address to the handler instead of referencing SCARG(uap, arg) directly.
OK guenther@, mpi@
|
|
OK anton@, mpi@
|
|
VOP_SETATTR() does not release the vnode lock (and it has never done
the unlocking in the past). Therefore spec_setattr() has to keep the
argument vnode locked and unlock v_specparent instead after the nested
VOP_SETATTR() call.
Fixes a WITNESS panic found by anton@
OK anton@, mpi@
|
|
error that would happen otherwise when a traced and stopped
multithreaded process is forced to exit. The error shows up as a kernel
panic when WITNESS is enabled. Without WITNESS, the error causes
a system hang.
sched_exit() has expected that a single KERNEL_UNLOCK() would release
the lock completely. That assumption is wrong when an exit happens
through the signal tracing logic:
sched_exit
exit1
single_thread_check
single_thread_set
issignal <-- KERNEL_LOCK()
userret <-- KERNEL_LOCK()
syscall
The error is a regression of r1.216 of kern_sig.c.
Panic reported and fix tested by Laurence Tratt
OK mpi@
|
|
Those devices have a broken AudioControl descriptor which advertises a
bad value for bLength for the FEATURE_UNIT sub-descriptor, so add a
quirk 'fixing' this bLength so that uaudio(4) attaches properly instead
of bailing out with 'audio descriptors make no sense, error=4'.
My C310 now properly attaches but doesnt seem to work right now, this is
a different issue that will be worked on.
Thanks to tb@, remi@, weerd@, Raf Czlonka, Base Pr1me, Jordan Geoghegan,
Peter J. Philipp, Alfredo Vogel, James Hastings, Bruno Flueckiger,
Remco & Alex Tsang for providing lsusb -v output for a large variety of
Logitech Webcams.
ok mpi@ ratchov@
|
|
|
|
FEATURE_UNIT bLength' issue.
ok mpi@
|
|
establish function parses the device tree's interrupt map to discover
the correct interrupt controller node and interrupt cells for the given
PCI node. After retrieving that information we can do the same the
normal FDT establish API already does.
MSI interrupts are established in a different way as well. Instead of
simply hooking up the interrupt handler and returning an MD cookie, we
need to pass back information for the PCI controller to configure its
interrupt correctly. For this, add another establish routine into the
FDT-based interrupt API which looks up msi-controller nodes and calls
their MSI-specific establish function if requested.
ok kettenis@
|
|
is synced properly before the CPU or the WiFi chip access the supplied
memory. Makes PCIe-connected bwfm(4) work on ARM-based machines.
|
|
specific receive path into the generic receive path, since PCIe
supplied packets can be misaligned as well.
|
|
must return 0 if we don't want that someone uses window 13. Remove
erroneous for-loop. We simply want to check if it's a remappable
window to disable the remap in that case.
ok kettenis@
|
|
is specified as the console. Current implementation can't assume the
given device is proved at the callback functions if the system has one
serial device at least.
|
|
in a compact block in the latter.
ok deraadt@ mlarkin@
|
|
|
|
|
|
|
|
with sendmsg(2) and MSG_OOB. Sync the code in udp, rip, and
rip6_usrreq. Add an inp NULL check in rip6_usrreq for consistency.
OK benno@ mpi@
|
|
bridges based on information provided by ACPI.
ok mlarkin@
|
|
Fix CID 1470236.
ok helg@
|
|
|
|
malloc(9) is apparently not mpsafe as found the hardway by sthen@.
|
|
duplicate allocation that could happen in the future when each socket
has a dedicated lock. Right now, the code path is serialized also by
the NET_LOCK() (and the KERNEL_LOCK()).
OK mpi@
|
|
paths create kernel threads. This will be utilized by sosplice()
for the taskq allocation.
OK mpi@
|
|
after starting iked kernel enters ddb with:
Stopped at aesni_ctr_enc+0xd8: int $3
|
|
ok phessler@
|
|
where it belongs. Problem spotted by by remi@
ok sthen@ claudio@ krw@
|
|
Requested by brad@
Tested by fcambus@
ok stsp@
|
|
32-bit platforms without the compiler complaining. In the end the
value will turn out as 0 anyway. Allows enabling bwfm(4) on 32-bit
platforms.
ok stsp@
|
|
OK kettenis@
|
|
for noticing.
|
|
|
|
ok pd@, guenther@
|
|
during name lookup, the directory vnode was not released. Add a
vrele() to the error return path. NetBSD has added a vput() there
after we imported the check.
OK krw@ visa@
|