From: Joern Engel Date: Mon, 13 May 2013 20:30:06 +0000 (-0400) Subject: target: close target_put_sess_cmd() vs. core_tmr_abort_task() race X-Git-Tag: v3.10-rc2~21^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ccf5ae83a6cf3d9cfe9a7038bfe7cd38ab03d5e1;p=pandora-kernel.git target: close target_put_sess_cmd() vs. core_tmr_abort_task() race It is possible for one thread to to take se_sess->sess_cmd_lock in core_tmr_abort_task() before taking a reference count on se_cmd->cmd_kref, while another thread in target_put_sess_cmd() drops se_cmd->cmd_kref before taking se_sess->sess_cmd_lock. This introduces kref_put_spinlock_irqsave() and uses it in target_put_sess_cmd() to close the race window. Signed-off-by: Joern Engel Acked-by: Greg Kroah-Hartman Cc: Signed-off-by: Nicholas Bellinger --- Reading git-diff-tree failed