summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc/python_version.py
diff options
context:
space:
mode:
authorPraveen Kumar Kannoju <praveen.kannoju@oracle.com>2026-10-14 12:13:44 +0000
committerLeon Romanovsky <leon@kernel.org>2026-10-15 11:37:02 -0400
commit9bcf45bfcaf83aed81b5fb12f0edf4c16e73e02e (patch)
tree2d4ba3c43c6be0288027fb2ea5c5d8fdfba590c0 /tools/lib/python/kdoc/python_version.py
parentc887e53e1c852b88bd5442d1bf4717ee3e7aadda (diff)
IB/mlx4: Avoid requeueing executing CM timeout work
id->scheduled_delete is set by schedule_delayed() itself. It is used in two cases after the RTU timeout support was added: * A new id_map_entry is created, and a 60-second RTU timeout is scheduled. * DREQ or REJ is received for an existing entry, and the normal 30-second teardown timeout is scheduled or adjusted. The following race is possible when the RTU timeout expires while a DREQ or REJ is handled: CPU 0: timeout work CPU 1: DREQ/REJ handler -------------------- ----------------------- RTU timer expires timeout callback starts waits for id_map_lock takes id_map_lock calls schedule_delayed() calls mod_delayed_work() drops id_map_lock takes id_map_lock removes mapping frees id_map_entry requeued timeout runs accesses freed id_map_entry mod_delayed_work() may requeue the work after the timeout callback has started. The original timeout callback then frees the id_map_entry, leaving the requeued work with a dangling delayed_work pointer. When a timeout is already scheduled, first cancel its pending work. A successful cancellation means the callback has not started and the timeout can safely be scheduled again. If cancellation fails, the callback is executing and will free the entry after id_map_lock is released; do not requeue it. cancel_delayed_work() is deliberately used instead of cancel_delayed_work_sync(), because the timeout callback may be waiting for id_map_lock, which is held by the caller. Fixes: fa09adf4231f ("IB/mlx4: Fix stale CM id_map entries when RTU is never received") Signed-off-by: Praveen Kumar Kannoju <praveen.kannoju@oracle.com> Link: https://patch.msgid.link/20261014121344.100048-1-praveen.kannoju@oracle.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions