https://github.com/torvalds/linux
Revision 9ff9d15eddd13ecdd41876c5e1f31ddbb127101c authored by Bart Van Assche on 22 October 2015, 22:57:04 UTC, committed by Nicholas Bellinger on 29 November 2015, 03:33:23 UTC
This patch fixes the following kernel warning because it avoids that
IRQs are disabled while ft_release_cmd() is invoked (fc_seq_set_resp()
invokes spin_unlock_bh()):

WARNING: CPU: 3 PID: 117 at kernel/softirq.c:150 __local_bh_enable_ip+0xaa/0x110()
Call Trace:
 [<ffffffff814f71eb>] dump_stack+0x4f/0x7b
 [<ffffffff8105e56a>] warn_slowpath_common+0x8a/0xc0
 [<ffffffff8105e65a>] warn_slowpath_null+0x1a/0x20
 [<ffffffff81062b2a>] __local_bh_enable_ip+0xaa/0x110
 [<ffffffff814ff229>] _raw_spin_unlock_bh+0x39/0x40
 [<ffffffffa03a7f94>] fc_seq_set_resp+0xe4/0x100 [libfc]
 [<ffffffffa02e604a>] ft_free_cmd+0x4a/0x90 [tcm_fc]
 [<ffffffffa02e6972>] ft_release_cmd+0x12/0x20 [tcm_fc]
 [<ffffffffa042bd66>] target_release_cmd_kref+0x56/0x90 [target_core_mod]
 [<ffffffffa042caf0>] target_put_sess_cmd+0xc0/0x110 [target_core_mod]
 [<ffffffffa042cb81>] transport_release_cmd+0x41/0x70 [target_core_mod]
 [<ffffffffa042d975>] transport_generic_free_cmd+0x35/0x420 [target_core_mod]

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Acked-by: Joern Engel <joern@logfs.org>
Reviewed-by: Andy Grover <agrover@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
1 parent 057085e
History
Tip revision: 9ff9d15eddd13ecdd41876c5e1f31ddbb127101c authored by Bart Van Assche on 22 October 2015, 22:57:04 UTC
target: Invoke release_cmd() callback without holding a spinlock
Tip revision: 9ff9d15
File Mode Size
oss
seq
Kconfig -rw-r--r-- 6.8 KB
Makefile -rw-r--r-- 1.4 KB
compress_offload.c -rw-r--r-- 25.9 KB
control.c -rw-r--r-- 49.6 KB
control_compat.c -rw-r--r-- 11.5 KB
ctljack.c -rw-r--r-- 2.2 KB
device.c -rw-r--r-- 6.3 KB
hrtimer.c -rw-r--r-- 3.8 KB
hwdep.c -rw-r--r-- 13.2 KB
hwdep_compat.c -rw-r--r-- 2.3 KB
info.c -rw-r--r-- 19.4 KB
info_oss.c -rw-r--r-- 3.5 KB
init.c -rw-r--r-- 25.8 KB
isadma.c -rw-r--r-- 3.0 KB
jack.c -rw-r--r-- 9.4 KB
memalloc.c -rw-r--r-- 7.5 KB
memory.c -rw-r--r-- 2.5 KB
misc.c -rw-r--r-- 3.9 KB
pcm.c -rw-r--r-- 34.4 KB
pcm_compat.c -rw-r--r-- 16.1 KB
pcm_dmaengine.c -rw-r--r-- 11.2 KB
pcm_drm_eld.c -rw-r--r-- 2.4 KB
pcm_iec958.c -rw-r--r-- 2.2 KB
pcm_lib.c -rw-r--r-- 71.1 KB
pcm_memory.c -rw-r--r-- 13.5 KB
pcm_misc.c -rw-r--r-- 14.8 KB
pcm_native.c -rw-r--r-- 100.4 KB
pcm_timer.c -rw-r--r-- 3.7 KB
pcm_trace.h -rw-r--r-- 3.7 KB
rawmidi.c -rw-r--r-- 47.8 KB
rawmidi_compat.c -rw-r--r-- 3.5 KB
rtctimer.c -rw-r--r-- 4.1 KB
sgbuf.c -rw-r--r-- 4.2 KB
sound.c -rw-r--r-- 10.5 KB
sound_oss.c -rw-r--r-- 7.1 KB
timer.c -rw-r--r-- 50.8 KB
timer_compat.c -rw-r--r-- 3.5 KB
vmaster.c -rw-r--r-- 12.7 KB

back to top