This changes the order of hook processing as the copy-on-write handlers
are called after the journal processing. This makes more sense as the
journal overwrite is logically part of the disk IO.
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:
1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.
2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.
I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
This man-page is based on OpenBSD's securelevel(7), and the copyright was
not reflecting that (probably due to a copy/paste error on my part; I can't
remember).
Noticed by Jeremy C. Reed, thanks!
- don't use VERBOSE_INIT_ARM
- dont configure obio UART
- using intr -1 for now, causes callout interrupt polling
can use that until serirq from 8712 works
in mmu_init_table\gemini_start.S and devmap[]\gemini_machdep.c;
this allows some flexibility e.g. to map 'em all, which is useful
e.g. when using obio uart to debug lpc uart.
- add mmu_init_table entries for Gemini global regs, lpchc, and lpcio
these are needed to consinit() when console is lpc uart
this allows some flexibility e.g. to map 'em all, which is useful
e.g. when using obio uart to debug lpc uart.
- add mmu_init_table entries for Gemini global regs, lpchc, and lpcio
these are needed to consinit() when console is lpc uart
- now have 2 versions of consinit, one for obio uart,
the other for lpc uart; we use CONSADDR to determine
which gets compiled.
- remove a useless bus_space map/unmap from obio uart version of consinit
comcnattach() will do his own...
- introduce X11FLAVOUR to choose src/x11 vs src/external/mit/xorg
for the X11 to build if MKX11=yes is set. it takes the values
of either Xorg or XFree86.
- default to Xorg on alpha, i386, macppc, shark, sparc and sparc64
- remove MKXORG_WITH_XSRC_XSERVER, unused and never useful
When a TCP timer is disarmed (with callout_stop()) in the general case
callout_invoking() isn't checked, so the timer handler could be called run
when the current interrupt handler exits, athough the timer is disarmed.
This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending,
causing a panic (see the PR for details).
Close the issue by aborting the handler if the timer is not callout_expired().
(the EXPIRED flag being cleared by callout_stop()).