Re: [PATCH] tcm_fc: Check for aborted sequence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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..?

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, "
> 
> --
> 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


--
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




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux