which add a capability to call external functions in a predetermined way.
It can be thought as a BPF "coprocessor" -- a generic mechanism to offload
more complex packet inspection operations. There is no default coprocessor
and this functionality is not targeted to the /dev/bpf. This is primarily
targeted to the kernel subsystems, therefore there is no way to set a custom
coprocessor at the userlevel.
Discussed on: tech-net@
OK: core@
- Do rnd_init_softint as early as possible in main, after configure2,
and before networking is initialized.
- Initialize the rnd_wakeup softint in rnd_init_softint, not lazily in
rnd_schedule_wakeup.
ok tls
This reverts
sys/dev/rnd_private.h -> r1.1
sys/kern/init_main.c -> r1.450
sys/kern/kern_rndq.c -> r1.14
sys/kern/kern_rndsink.c -> r1.2
Parts of these changes will be added back, and the rndsource
callbacks will be fixed to avoid the lock recursion bug that
motivated the stop-gaps in the first place.
ok tls
Otherwise, rndsink_request takes rndsinks_lock and calls
rnd_extract_data, which synchronously calls rndsinks_distribute,
which takes rndsinks_lock -> boom.
This is a stop-gap on a stop-gap on a stop-gap; we really ought to
back out all of these stop-gaps, make bcm2835_rng call rnd_add_data
asynchronously to work around the original symptom, and design a real
solution when we have time to sort this mess out properly.
them so we get DT_TEXTREL problems.
So if pic && SHARED, we force EH_FRAME to be writeable (which is what would
happen if .cfi_personality was not supported).
* elf_check_header() already ensures eh.e_phnum > MAXPHNUM, so do not
test it again at the call site
* is_dyn == true implies a successfull call to elf_check_header(eh, ET_DYN),
so no need to call elf_check_header(eh, ET_EXEC)
From Maxime Villard.
hardware RNGs using the polling mode of operation:
1) Initialize the rng subsystem soft interrupts as early in kernel startup
as seems safe (we have no MI guarantee that softints are working at all
until configure2() returns, AFAICT).
This should have the rnd subsystem able to process events via softint
before the network subsystem (a notorious early user of entropy) starts.
2) Remove the shortcut calls to rnd_process_events() from
rnd_schedule_process(), with the result that until the softint is installed
rnd_process_events() is a NOP.
3) Directly call rnd_process_events() in rnd_extract_data(),
rnd_maybe_extract(), and rnd_init_softint(). This should suck up any
samples actually collected as early as possible.