Age | Commit message (Collapse) | Author |
|
|
|
ok kettenis@ patrick@
|
|
ok kettenis@ patrick@
|
|
|
|
With this, the WAN port on the Turris Omnia works.
tested on Turris MOX by kettenis@
ok patrick@
|
|
ok bluhm@, claudio@
|
|
From Lucas De Marchi
44610f4c3093bbce3061b77d37bdf1bed8e379da in linux-6.1.y/6.1.14
fff758698842fb6722be37498d8773e0fb47f000 in mainline linux
|
|
From Ankit Nautiyal
0deb50618944aed143269214daea0ba2ddf2222d in linux-6.1.y/6.1.14
18feaf6d0784dcba888859109676adf1e0260dfd in mainline linux
|
|
|
|
Separated with the existing "..." requested by deraadt@
OK gnezdo@
|
|
We need an API for creating, scheduling, and rescheduling clock
interrupts.
- Add struct clockintr, a schedulable clock interrupt callback.
- Add clockintr_establish(). Allocates a new struct clockintr and
binds it to the given clockintr_queue.
- Add clockintr_expiration(). Returns the clockintr's absolute
expiration uptime.
- Add clockintr_nsecuptime(). Returns the clockintr's parent queue's
cached uptime. Using a cached timestamp is cheaper than calling
nsecuptime(9) repeatedly when we don't absolutely need to.
- Add clockintr_schedule(). Schedules the clock interrupt to run at
or after the given absolute uptime.
- Add clockintr_advance(). Reschedules the clock interrupt in the
future on the given period relative to the parent queue's cached
uptime.
With the above pieces in place we can push most of the scheduling
code for hardclock()/statclock()/schedclock() from clockintr_dispatch()
into the wrapper functions clockintr_hardclock(), clockintr_statclock(),
and clockintr_schedclock(). These wrappers are temporary. I don't
want to muck up the wrapped functions while things are still moving
around.
For the moment these interfaces are internal to kern_clockintr.c. In
a later patch we will move the prototypes into <sys/clockintr.h> so
anyone can use them. We first need to add a data structure for
sorting the clockintr structs. We also need to add a mutex to
clockintr_queue to allow arbitrary threads to safely manipulate clock
interrupts established on other CPUs.
Shown on hackers@. Tweaked by mlarkin@.
ok mlarkin@, "no objections" kettenis@
|
|
Without them, the kernel could be made to crash or reboot after receiving some
specially crafted terminal escape sequences.
Reported by David Leadbeater (dgl, dgl dot cx)
|
|
issue on the StarFive JH7100 SoC where packets spanning multiple mbufs
are corrupted. Makes ethernet work reliably on the StarFive VisionFive 1
board.
ok patrick@
|
|
ok patrick@
|
|
register layout where the upper 16 bits decide which of the lower 16 bits
apply when writing to a register. Handle this new variant.
ok patrick@
|
|
|
|
The assertion within tsleep(9) was relaxed to allow calls on special
`nowake' channel without kernel lock held. So the sisguspend(2) like
cases "select(0, NULL, NULL, NULL, NULL)" and "poll(NULL, 0, INFTIM)"
should not trigger it. Commit reverted diff back.
ok claudio@
|
|
This also brings to install boot.8 man page correctly.
ok miod@
|
|
Mark the VM map as busy instead to prevent any sibling thread to request an
exclusive version of the vm_map. This is necessary to let any PG_BUSY page,
found in the UVM vnode object, to be released by a sibling in the middle of
a page-fault.
Note: the page-fault handler releases & re-grab a shared version of the
vm_map lock and expect it to be available to make progress.
Prevent a 3-Threads deadlock between msync(2), page-fault and mmap(2). The
deadlock reported on bugs@ by many occured as follow:
..ThreadA faults & grabs the shared `vmmaplk' then release it before calling
..uvn_get() which might sleep to allocate pages and mark them as PG_BUSY.
..Once the lock is released, threadB calls uvn_flush(). It sees at least a
..PG_BUSY page and sleeps on the `vmmaplk' waiting for threadA to un-busy
..the page.
..At the same time threadC asked for an exclusive version of the lock and
..sleeps until all reader are done with it. This prevents threadA to
..acquire a shared-version of the lock and finish the page fault.
This issue is similar to NetBSD's PR #56952 and the fix is from Chuck Silvers.
Tested by many on bugs@, thanks!
ok kettenis@
|
|
only compile tty-related code (stty command, tty variable) on platforms
where it makes sense for the boot loader to control it, rather than the
PROM/firmware/whatever.
|
|
Now the correct date is displayed instead of January 1, 1970.
Tested on LUNA-88K2 and nono emulator by me.
"make sense" miod@
|
|
allocated for NSH.
Found by bluhm.
ok dlg.
|
|
From Matt Roper
2fc3ff76e96f48e5e4dd705f6794b8483f7c1624 in linux-6.1.y/6.1.13
d5a1224aa68c8b124a4c5c390186e571815ed390 in mainline linux
|
|
From Leo Li
020eccac747e30a35f1fdd4dc6f18425ff1a5870 in linux-6.1.y/6.1.13
2a00299e7447395d0898e7c6214817c06a61a8e8 in mainline linux
|
|
From Jack Xiao
dbe3529e816ee77a19fb6636e762b1dadbd02d10 in linux-6.1.y/6.1.13
8f32378986218812083b127da5ba42d48297d7c4 in mainline linux
|
|
From Alex Deucher
b4e79d0c7f9bb938525716b3e05cfca6418e2bae in linux-6.1.y/6.1.13
6fc547a5a2ef5ce05b16924106663ab92f8f87a7 in mainline linux
|
|
From Yiqing Yao
fc64b04297a0674f4e5aff50622efdce46715fe1 in linux-6.1.y/6.1.13
ac7170082c0e140663f0853d3de733a5341ce7b0 in mainline linux
|
|
From Evan Quan
e9cbb2b0d9f679d7e25b9415cf9d7345441a95c5 in linux-6.1.y/6.1.13
bb25849c0fa550b26cecc9c476c519a927c66898 in mainline linux
|
|
From Nicholas Kazlauskas
488770cbddd8a873fb3bb8866e8a46211570c367 in linux-6.1.y/6.1.13
154711aa5759ef9b45903124fa813c4c29ee681c in mainline linux
|
|
From George Shen
383e32fa274a330dbf2d2db538b6bf2f9ef390aa in linux-6.1.y/6.1.13
275d8a1db261a1272a818d40ebc61b3b865b60e5 in mainline linux
|
|
From Daniel Miess
7dbd205349f1fb098057c28a9a2af244aa868f72 in linux-6.1.y/6.1.13
dd2db2dc4bd298f33dea50c80c3c11bee4e3b0a4 in mainline linux
|
|
From Daniel Miess
0c42622a573b716d79c57ff61c52fea46c0a5c94 in linux-6.1.y/6.1.13
ea062fd28f922cb118bfb33229f405b81aff7781 in mainline linux
|
|
easier
ok guenther
|
|
a new AEXECVE bit to acct(4), and print it in lastcomm(8)
ok bluhm
|
|
ok jsg@ phessler@
|
|
This fixes a possible freeze in execve(2). It sometimes froze when a
dual-cpu macppc started daemons during boot. There is a chance that
uvm_map.c uvmspace_exec sees ovm->vm_refcnt != 1 and switches curproc
to a new pmap. If this happened, then execve froze by trying to
copyout to the wrong pmap; curpcb->pcb_pm was old. Fix by setting
pointers when uvmspace_exec calls pmap_activate.
ok miod@
|
|
them), such as x86 bios ROMs.
|
|
ROM enable/disable; makes addition of debug code more fool-proof. NFC (yet)
|
|
|
|
execpromises, as noted by regress/sys/kern/pledge/execpromise.
sure deraadt@
|
|
now this only supports states advertised in device trees, but ACPI support
could be added as well. The parsing of the idle states as well as the
heuristic to pick the deepest one is probably a bit to simple, but more
complex cases can be added later. Worst case cores will use WFI and use
more power in suspend.
ok phessler@
|
|
The driver will resume in the ACPI thread and run code to wake the device.
If a firmware error occurs then the init task will be scheduled and could
then run in parallel to the wakeup code. This would lead to panics as the
init task ran while we were not yet done with device initialization.
To prevent this problem we now grab the rwlock during wakeup, the same
lock which is used to prevent races between the init task and ioctls.
Problem found by mvs@, who also suggested the fix implemented here and
tested the changes.
ok mvs@
|
|
ok kettenis@
|
|
telling the kernel with pinsyscall(2)
|
|
__syscall() was removed.
|
|
ok mglocker@
|
|
those days, and nothing checks for that symbol anymore.
|
|
|
|
ok patrick@
|
|
|