Re: [PATCH] target: fix crash in cmd tracing when cmd didn't match a LUN

Nicholas A. Bellinger
2015-07-24T20:32:28Z

On Fri, 2015-07-24 at 12:52 +0200, Christoph Hellwig wrote:
> On Thu, Jul 23, 2015 at 03:19:32PM -0700, Spencer Baugh wrote:
> > From: Alexei Potashnik <alexei@purestorage.com>
> >
> > If command didn't match a LUN and we're sending check condition, the
> > target_cmd_complete ftrace point will crash because it assumes that
> > cmd->t_task_cdb has been set.
> >
> > The fix will temporarily set t_task_cdb to the se_cmd buffer
> > and copy first 6 bytes of cdb in there as soon as possible.
> > At a later point t_task_cdb is reset to the correct buffer,
> > but until then traces and printks don't cause a crash.
>
> This is too ugly to live. Just dropping the t_task_cdb dereference
> from the trace point sounds like the simples quick fix for now,

Yes, that is what I'd prefer as well.

> and removing the crazy layering violation in iSCSI that opencode
> target_submit_cmd is the proper long term fix.

We've already been through this discussion a couple of years back when
target_submit_cmd() first came into existence.

The reason iscsi/iser-target continues to be a special case is due to
immediate data vs. non immediate data and their respective command
sequence number ordering requirements.

--nab