forked from marfrit/kernel-agent
fleet/ohm + patches/driver/bes2600/queue-pending-record-lock-bh-danctnix: bundle besser#18 fix into the migration
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'.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# 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-dkms` branch
|
||||
`bes2600/queue-pending-record-lock-bh-fix`, commit `d95453c`.
|
||||
- This file is the same commit's `git format-patch` output with
|
||||
the DKMS-style `bes2600/foo.c` paths rewritten to in-tree
|
||||
`drivers/staging/bes2600/foo.c` paths via sed.
|
||||
Reference in New Issue
Block a user