On Apr 23, 2013, at 2:00 PM, Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx> wrote: > On Mon, 2013-04-22 at 09:49 -0700, Mark Rustad wrote: >> Add a check for an aborted sequence, which has a >> NULL sequence pointer, to avoid target crashes. >> The most relevant messages from the crash (entered >> from video capture) include: >> >> BUG: unable to handle kernel paging request at ffffffffffffffdf >> IP: [<ffffffffa02d514c>] fc_seq_send+0x3c/0x150 [libfc] >> ... >> Call Trace: >> [<ffffffffa0443de6>] ft_queue_data_in+0x266/0x560 [tcm_fc] >> >> Signed-off-by: Mark Rustad <mark.d.rustad@xxxxxxxxx> >> --- > > Applying to for-next. > > Btw, this should include a CC' to stable, yes..? I expect so, but I haven't analyzed how far back it might be relevant. In any case, I wanted more eyes to look at it before sending it more broadly. > Thanks MDR! > > --nab > >> drivers/target/tcm_fc/tfc_io.c | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c >> index b6fd4cf..e415af3 100644 >> --- a/drivers/target/tcm_fc/tfc_io.c >> +++ b/drivers/target/tcm_fc/tfc_io.c >> @@ -103,6 +103,13 @@ int ft_queue_data_in(struct se_cmd *se_cmd) >> use_sg = !(remaining % 4); >> >> while (remaining) { >> + struct fc_seq *seq = cmd->seq; >> + >> + if (!seq) { >> + pr_debug("%s: Command aborted, xid 0x%x\n", >> + __func__, ep->xid); >> + break; >> + } >> if (!mem_len) { >> sg = sg_next(sg); >> mem_len = min((size_t)sg->length, remaining); >> @@ -169,7 +176,7 @@ int ft_queue_data_in(struct se_cmd *se_cmd) >> f_ctl |= FC_FC_END_SEQ; >> fc_fill_fc_hdr(fp, FC_RCTL_DD_SOL_DATA, ep->did, ep->sid, >> FC_TYPE_FCP, f_ctl, fh_off); >> - error = lport->tt.seq_send(lport, cmd->seq, fp); >> + error = lport->tt.seq_send(lport, seq, fp); >> if (error) { >> /* XXX For now, initiator will retry */ >> pr_err_ratelimited("%s: Failed to send frame %p, " -- Mark Rustad, Networking Division, Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html