When a process in a background group attempts TTY I/O, it is currently
put to sleep on 'lbolt'. This relies on the 1Hz wakeup() from schedcpu().
Replace ttysleep(tp, &lbolt, ...) with ttysleep_nsec(tp, &nowake,
..., SEC_TO_NSEC(1)) and remove unused 'lbolt' channel.
From Tim Leslie, ok claudio.
closing the fd it uses to report log messages
This avoids a race where the child process notices the
fd was closed before exiting and spams the logs.
ok dtucker@
decompress the second one. The problem was calling mparse*() functions
in the wrong order mparse_open -> mparse_reset -> mparse_readfd instead
of in the correct order mparse_reset -> mparse_open -> mparse_readfd:
mparse_reset() clears the gzip flag, mparse_open() sets it if the new
file is gzipped, and read_whole_file() called from mparse_readfd()
enables decompression if the flag is set.
To make the code easier to follow, call all of mparse_alloc(),
mparse_reset(), and mparse_free() from main() rather than hiding
mparse_reset() two levels down in the parse() subroutine.
Bug found by Alejandro Colomar <alx@kernel.org> on Debian Sid
and reported on the GNU roff mailing list.
My recent changes to improve vmd(8)'s proc.{c,h} inadvertently broke
replies to vmctl when processing reload and reset commands. Restore
the IMSG_NONE enum value and use it explicitly in areas checking
for the zero value.
ok hshoexer@
after sorting by name type in descending order (to put the most
important names first), use the same sort order that is conventional
in SEE ALSO sections: first case-insensitively in ascending alphabetic
order, and if that results in a tie because two names differ only in
case (like OSSL_TRACE_END and OSSL_trace_end, which are *different*
names that, in FreeBSD, are documented in the same manual page - why
am i unsurprised that such madness occurs with "OSSL" of all APIs?),
break the tie by sorting case-sensitively in ascending alphabetic order,
i.e. put capitals before lowercase letters, rather than allowing the
tie to result in a random order.
This very minor issue was found by Mark Johnston <markj@>
when he worked on reproducible builds in FreeBSD.
* clarify that dying from a signal is not considered a failure of fuse_loop(3)
* add many missing .Dv macros and a few missing .Pa and .Er macros
* remove future tense in several cases where it's pointless
* polish some capitalization and punctuation and fix a few typos
OK helg@
Now that VM spaces are purged during exit1() w/o KERNEL_LOCK(), there is
no mechanim to grab a valid reference on the exiting process' `ps_vmspace' .
So extend existing checks for zombies to PS_EXITING processes to prevent
similar races.
Reported by gerhard@, ok claudio@
basic block reordering.
Basic block span computation has been fixed, hopefully for good, in m88k.md
rev 1.16.
The delayed branch optimization is unfortunately still corrupting register
values by moving instructions which shouldn't, in complex enough code. Even
though the gcc testsuite passes, including the few tests which exercize
this, in gcc's own tree-cfg.c, the combination of the inlining of
update_modified_stmts() and delayed branching creates a code path where the
argument of one update_stmt_operands() call (via update_stmt_is_modified())
is overwritten with a load of the (declared noreturn, and it matters)
fancy_abort() message in the stmt_ann() diagnostic.
This can be reduced to a 127 line testcase, which will hopefully let me cut
my teeth further on this.
In the meantime, disabling this optimization allows gcc 4 to be self-hosting
again on m88k.
The last expat update introduced whitespace between # and define, which
resulted in a bogus 'Version: ..' line in expat.pc. Teach the regex about
such whitespace. Unbreaks the build of graphics/rawtherapee.
ok matthieu
Overall design comes from deraadt@. The calculation method of DSO
address in traced process virtual address space was suggested by
kettenis@. Many others provided their feedback and ideas in earlier
versions of this change.
OK claudio@
GuC submission was disabled as it sometimes failed to initialise
on my Alder Lake machine (T14 Gen 3 Intel). This continues to happen
on some boots.
However, not using GuC submission results in warnings and graphical
glitches on Meteor Lake (T14 Gen 5 Intel). So instead of disabling
GuC submission for all platforms, disable it just for Alder Lake-P/N.
GFP_ATOMIC so pool_get() will be called with PR_NOWAIT
Avoids 'non-zero mutex count: 1' panic when GuC submission is enabled
on gen 12 (Alder Lake, Meteor Lake).
assertwaitok
pool_get
idr_alloc
ida_alloc_range
new_guc_id
assign_guc_id
pin_guc_id (takes submission_state.lock)
terminating a FUSE session.
The primary change is:
The Linux libfuse implementation of fuse_loop(3) terminates either when
the kernel sends FUSE_DESTROY or, if fuse_set_signal_handlers(3) has
been called, when it catches one of SIGINT, SIGHUP, or SIGTERM.
The OpenBSD implementation behaves similarly when the file system is
unmounted with umount(8). However, it tries to unmount the file system
automatically when one of the above signals is caught. It should
instead just terminate and rely on fuse_unmount(3) being called later by
the FUSE file system daemon as part of its termination.
Additional changes:
- The FUSE file system daemon's destroy handler is the last operation
called after the file system is unmounted. Before, it was incorrectly
being called when FBT_DESTROY is received by fuse_loop(3). The destroy
handler is now called in fuse_destroy(3).
- The file system is no longer unmounted when the device is closed.
fuse_unmount(3) now closes the FUSE device before unmount(2) is called to
prevent deadlocks due to the kernel trying to send FBT_DESTROY when
fuse_loop(3) is no longer active and there listening for messages from
the kernel.
The side effect of this change is that if a FUSE file system daemon
crashes, the FUSE device is automatically closed but the file system is not
unmounted. It must be unmounted manually with umount(8).
- Man page updates to reflect this change and correct a few other minor
errors.
OK claudio@