forked from marfrit/kernel-agent
4d98a8169d
Pulls the besser#18 lockdep fix (originally on
noether/bes2600-pending-record-lock-bh / PR #30) into this PR so the
ohm migration ships a single self-consistent pkgrel that contains all
three goal components: kernel-agent flow + Patch I + besser#18 fix
(plus the GCC 15 SCS Makefile workaround, no-op while SCS=n).
ohm.yaml includes now resolve to 4 patches:
1. driver/bes2600/cumulative-c5x-danctnix/ (148 149 B)
2. driver/bes2600/scan-filter-5ghz-danctnix/ ( 7 735 B)
3. arch/arm64/xor-neon-ffixed-x18-scs-build-fix-danctnix/ (1 562 B)
4. driver/bes2600/queue-pending-record-lock-bh-danctnix/ (5 258 B)
----
cumulative.patch (162 704 B)
b2sum 0eb091ddaba4a8f1c3c2a78eb8c621cdc6e6dfed6c43f7dac03e508a05b...
Trailer-strip applied to the besser#18 patch source for the same
reason as the SCS patch — it's now the last in the concatenated
cumulative, and patch(1) errors on the orphan '-- \n2.54.0\n' EOF
sentinel. Same gotcha documented in 84734ba.
PR #30 (the standalone besser#18 mirror PR) becomes superfluous
once this lands; close it as 'bundled into #28'.
queue-pending-record-lock-bh-danctnix — close besser#18
Converts pending_record_lock to spin_lock_bh() at the 5 sites
where it is taken in non-BH-disabled contexts (bes2600_queue_get_skb
called from bes2600_join_work, and bes2600_tx_loop_item_pending_check).
Eliminates the PROVE_LOCKING SOFTIRQ-safe → SOFTIRQ-unsafe warning
reported in besser#18: &queue->lock (taken with _bh everywhere,
including the nested acquisition at queue.c:289 that holds
pending_record_lock as inner) was registered SOFTIRQ-irq-safe by
lockdep, but pending_record_lock was sometimes taken without BH
disable, creating an AB-BA deadlock window.
Provenance:
- Source-of-truth commit on
marfrit/bes2600-dkmsbranchbes2600/queue-pending-record-lock-bh-fix, commitd95453c. - This file is the same commit's
git format-patchoutput with the DKMS-stylebes2600/foo.cpaths rewritten to in-treedrivers/staging/bes2600/foo.cpaths via sed.