Ensure that the first database is correctly added when
more than one database is provided.
Fixes problem I introduced in rev 1.17 on 2009-04-12,
and noticed recently by Simon.
if_input, i.e, ether_input and friends, now runs in softint without any
protections. It's ok for ether_input itself because it's already MP-safe,
however, subsequent routines called from it such as carp_input and agr_input
aren't safe because they're not MP-safe. Protect if_input with KERNEL_LOCK.
if_input can be called from a normal LWP context. In that case we need to
prevent interrupts (softint) from running by splsoftnet to protect non-MP-safe
codes (e.g., carp_input and agr_input).
Pointed out by mlelstv@
The original expolit and mitigation have been developed by Maxime Villard.
I've reworked the shared code and adapted for the ATF context.
I've included PIE-aware version (RIP/EIP relative) and introduced
additional comments to the explanation how to trigger the flaw.
This test passes on NetBSD/8.99.17.
Sponsored by <The NetBSD Foundation>
Move the can_we_set_dbregs() auxiliary function from t_ptrace_x86_wait.h
to a common file t_ptrace_wait.h. This allows using this function for
checking whether the DBREGS set operations in ptrace(2) are accessible for
a user.
Sponsored by <The NetBSD Foundation>
- outputs.master switches between line and hp volume control, depending
on jack sense
- add outputs.source to override jack sense output routing
- (playback) line and hp controls are in the input class
- (capture) line and mic controls are in the record class
polling the job token pipe adds a lot of overhead
for little gain.
For now, just leave wantToken=0
And avoid busy waiting when no tokens are available and
no jobs are running.
Reviewed by: christos
POKSIRQ is triggered if POK remains low for less than IRQLEVEL. This makes
it way too easy to accidentally trigger shutdown. POKLIRQ is triggered if
POK hold time is greater than IRQLEVEL, which is much more reasonable for
this use case.
- __syncicache() wants a virtual address, not a pa
- this crashes on G5 SMP
- the rest of the function does the same as __syncicache() except it turns
the MMU off first so physical addresses work
with this, my PCIe G5 boots SMP