# 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.