tcm_fc: Fix crash seen with aborts and large reads
authorMark Rustad <mark.d.rustad@intel.com>
Sat, 14 Jul 2012 01:18:04 +0000 (18:18 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 25 Jul 2012 03:11:24 +0000 (04:11 +0100)
commit60d448613a4cf0b8e70c0d16abc6a6baf31ab9b5
tree3979247f6f34620f715aa0b0d75e7d05ed99dbb9
parentdf4372866de83261b79bf7af24c058649ed0f2eb
tcm_fc: Fix crash seen with aborts and large reads

commit 3cc5d2a6b9a2fd1bf024aa5e52dd22961eecaf13 upstream.

This patch fixes a crash seen when large reads have their exchange
aborted by either timing out or being reset. Because the exchange
abort results in the seq pointer being set to NULL, because the
sequence is no longer valid, it must not be dereferenced. This
patch changes the function ft_get_task_tag to return ~0 if it is
unable to get the tag for this reason. Because the get_task_tag
interface provides no means of returning an error, this seems
like the best way to fix this issue at the moment.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/target/tcm_fc/tfc_cmd.c