mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 02:36:25 +07:00
d5705c4ab5
This patch addresses an long standing race in iscsi_[rx,tx]_thread_pre_handler() use of flush_signals(), and between iscsi_deallocate_extra_thread_sets() setting ISCSI_THREAD_SET_DIE before calling kthread_stop(). It addresses the issue by both holding ts_state_lock before calling send_sig() in iscsi_deallocate_extra_thread_sets(), as well as only calling flush_signals() when ts->status != ISCSI_THREAD_SET_DIE within iscsi_[rx,tx]_thread_pre_handler() code. v2 changes: - Add explicit complete(&ts->[rx,tx]_start_comp); before kthread_stop() in iscsi_deallocate_extra_thread_sets() - Drop left-over send_sig() calls in iscsi_deallocate_extra_thread_sets() - Add kthread_should_stop() check in iscsi_signal_thread_pre_handler() Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> |
||
---|---|---|
.. | ||
iscsi_target_auth.c | ||
iscsi_target_auth.h | ||
iscsi_target_configfs.c | ||
iscsi_target_configfs.h | ||
iscsi_target_core.h | ||
iscsi_target_datain_values.c | ||
iscsi_target_datain_values.h | ||
iscsi_target_device.c | ||
iscsi_target_device.h | ||
iscsi_target_erl0.c | ||
iscsi_target_erl0.h | ||
iscsi_target_erl1.c | ||
iscsi_target_erl1.h | ||
iscsi_target_erl2.c | ||
iscsi_target_erl2.h | ||
iscsi_target_login.c | ||
iscsi_target_login.h | ||
iscsi_target_nego.c | ||
iscsi_target_nego.h | ||
iscsi_target_nodeattrib.c | ||
iscsi_target_nodeattrib.h | ||
iscsi_target_parameters.c | ||
iscsi_target_parameters.h | ||
iscsi_target_seq_pdu_list.c | ||
iscsi_target_seq_pdu_list.h | ||
iscsi_target_stat.c | ||
iscsi_target_stat.h | ||
iscsi_target_tmr.c | ||
iscsi_target_tmr.h | ||
iscsi_target_tpg.c | ||
iscsi_target_tpg.h | ||
iscsi_target_tq.c | ||
iscsi_target_tq.h | ||
iscsi_target_transport.c | ||
iscsi_target_util.c | ||
iscsi_target_util.h | ||
iscsi_target.c | ||
iscsi_target.h | ||
Kconfig | ||
Makefile |