t_mkfifo: Bump timeouts a little bit to exercise the race better.
Currently on the releng testbed, the parent's open() call is not
failing with _any_ EINTR, presumably because (a) the child is opening
the fifo before any itimer alarms fire and then (b) signal no longer
causes the parent's open() to fail once the child has opened the other
end of the fifo. So let's give the parent a bit more of a head start,
and run the race a little longer.
PR kern/59578: open() hangs indefinitely on FIFO with frequent signal
interruption
re(4): fix mangled TX queue on DMA map loading errors
Do not advance the TX queue producer index when bus_dmamap_load_mbuf()
fails.
The producer index must advance only after a packet has been
successfully committed to a TX queue entry. Advancing it on a
map loading error leaves a hole in re_txq[], while re_txq_free()
still counts only successfully queued packets.
re_txeof() assumes that all outstanding TX queue entries from
re_txq_considx are contiguous, so such a hole can make it process
an unused entry and corrupt the TX queue accounting.
This bug was introduced by my re_encap() -> re_start() refactoring
in rev. 1.59 back in 2006. Sorry it took ~20 years to notice it.
Should be pulled up to netbsd-11 and netbsd-10.
Revert "turnstile(9): Fix priority inheritance if trylock requires restart."
This was originally done in an attempt to resolve the issue described
in:
PR kern/60739: Turnstile priority inheritance short-circuits walking
of waiter chain when trylock fails
But it may have broken other things:
PR kern/60776: reproducable assertion failure with today's current
> Today's amd64 kernel reproducably crashes for me when running build.sh.
>
> [ 4043.4787057] panic: kernel diagnostic assertion "lwp_eprio(l) >= ts->ts_eprio" failed: file "../../../../kern/kern_turnstile.c", line 356
> [ 4043.6286910] cpu1: Begin traceback...
> [ 4043.6686907] vpanic() at netbsd:vpanic+0x189
> [ 4043.7186903] kern_assert() at netbsd:kern_assert+0x4b
> [ 4043.7786898] turnstile_wakeup() at netbsd:turnstile_wakeup+0x2c5
[10 lines not shown]
t_fdrestart: Test named fifos too.
Turns out we're missing a wakeup on close for read and write on fifos
too!
PR kern/57659: closing pipe writefd fails to wake concurrent write on
same writefd
t_fdrestart: Test restarting poll and select on close too.
They must promptly report POLLNVAL/EBADF when a file descriptor they
are listening for is closed, just like read and write.
Note: kevent doesn't get restarted when an fd registered with it is
closed; the registration is simply silently discarded instead. Hence
no corresponding kevent tests here.
PR kern/57659: closing pipe writefd fails to wake concurrent write on
same writefd
t_poll: Rename tests pollclosed -> pollclosedpeer.
These test what happens when we're polling a file descriptor for some
two-ended thing (pipe, fifo, socket, pty) and the _other_ end is
closed. This is to prepare for adding a suite of tests for when
_this_ end is closed, which I'll reuse the name `pollclosed' for.
Prompted by:
PR kern/59056: poll POLLHUP bugs
t_poll: Fix delayed_write checks.
1. Check the results of the poll(2) call that sleeps, not a
zero-timeout call instead -- not sure how that crept in.
2. Do also check a zero-timeout call at the end to make sure the
event state is persistent.
PR kern/59056: poll POLLHUP bugs
Use new macros, LFS_RELEASEIENTRY and LFS_RELEASESEGENTRY, to release the
buffers obtained from LFS_IENTRY and LFS_SEGENTRY. The macros replace
calls to brelse() and (at this point) resolve to brelse().
No functional change.
mikmod: updated to 3.2.10
3.2.10
- Fix a few spelling mistakes (thanks to Stephen Kitt.)
- Updated OS2 EMX makefile for KLIBC environment (build tested with
cross-os2emx toolchain at https://github.com/komh/cross-os2emx)
- Added a few OpenWatcom/DOS bits (needs further work.)
- A few minor fixes and clean-ups.
libmikmod: updated to 3.3.14
3.3.14
- Fix out-of-bounds writes in unimod v6 loader with crafted files.
- Add bounding checks for DSMI AMF channel remap table.
- Add limit check to numchan in DSM loader.
- Fix IT pattern loader allocation to match maximum allowed row count
- Fix ULT loader numchn, numpat, numtrk calculations corner cases.
- Fix DSM and OKT loaders numtrk integer overflow with crafted files
- Added Windows WASAPI output driver.
- Added Playstation Vita output driver.
- Updated webaudio driver with stereo output support.
- Fixed Windows XAudio2 driver build using MinGW-w64.
- Revised SDL output driver for MikMod_Reset() issue.
- Updated OS2 EMX makefile for KLIBC environment (build tested with
cross-os2emx toolchain at https://github.com/komh/cross-os2emx )
- Cmake build system now installs documentation and the autoconf macro.
- Minor cmake build system fixes.
- A few other minor fixes and clean-ups.