LinuxKPI: account for delayed work cancelled after taskqueue dequeue
I encounter intermittent shutdown/restart hangs with i915/GuC and the
normal 34 ms scheduling-disable delay. Setting that delay to zero has
avoided the hang in my testing. This change fixes a reproducible
LinuxKPI cancellation-accounting defect that can leave the
corresponding context reference unreleased, rather than changing the
driver's delay.
Commit 79e290d96786 corrected the ordinary queued and already-executing
return values of cancel_delayed_work_sync(). There is still a gap
between native taskqueue dequeue and LinuxKPI callback ownership:
1. In sys/kern/subr_taskqueue.c, taskqueue_run_locked() removes the
task, clears ta_pending and sets tb_running before calling its
handler.
2. Before linux_work_fn() claims the callback,
linux_cancel_delayed_work_sync_int() atomically changes WORK_ST_TASK
to WORK_ST_IDLE.
[34 lines not shown]
devel/gwm: Fix LICENSE after upstream dual-license switch
Upstream relicensed at 1.10.0: LICENSE.md is gone, replaced by
LICENSE-MIT and LICENSE-APACHE, and Cargo.toml now declares
"MIT OR Apache-2.0". The stale LICENSE_FILE went unnoticed in the
1.10.0 update because licenses were disabled in the build at the
time; with them enabled again the patch phase fails with "Missing
license file for MIT".
No PORTREVISION bump: the pending _1 -> _2 revision has never
produced a package, so the added license files ride along with it.
(cherry picked from commit 30bb7cd78f6abfb2d83c89f1ef01a4558bd4cd33)
lang/erlang: Fix the vsn.mk consistency checks in pre-configure
The checks grepped lib/*/vsn.mk for _EI_VSN, _TOOLS_VSN and _SNMP_VSN,
but upstream names those variables EI_VSN, TOOLS_VSN and SNMP_VSN.
The grep therefore matched nothing and each test reduced to
[ ! = <version> ], which sh evaluates as a false string comparison, so
every check passed silently no matter what the Makefile said.
The port-side variables grew their underscore prefix in 12b48a4d8ea,
which renamed them inside the grep patterns as well.
(cherry picked from commit af2f39d2d6d9520cc5e9710910a0454aee01ad5d)
lang/erlang: Do not add WRKSRC/lib to ERL_LIBS during build
ERL_LIBS=${WRKSRC}/lib puts the half-populated in-tree lib/*/ebin
directories on the bootstrap erlc's code path, where they shadow the
bootstrap compiler. That breaks whenever a patch release changes an
API inside the compiler itself. OTP 28.5.0.8 changes
beam_ssa_type:opt_start from arity 2 to arity 3, so the freshly
written beam_ssa_opt.beam gets loaded from lib/compiler/ebin while
beam_ssa_type still comes from the bootstrap, and the build dies with
beam_ssa_recv.erl: internal error in pass beam_ssa_opt:
exception error: undefined function beam_ssa_type:opt_start/3
The ordering inside lib/compiler/src is alphabetical, so this is not a
job race and MAKE_JOBS_UNSAFE, which the error message suggests, does
not help.
The build system derives its own code paths from ERL_TOP, and
lang/erlang-runtime2[789] build the same tarballs, doc chunks
[4 lines not shown]