Re: block: Always check queue limits for cloned requests

From: Markus Trippelsdorf
Date: Sun Nov 29 2015 - 06:50:56 EST


On 2015.11.26 at 08:11 -0500, Mike Snitzer wrote:
> On Thu, Nov 26 2015 at 2:46am -0500,
> Hannes Reinecke <hare@xxxxxxx> wrote:
>
> > When a cloned request is retried on other queues it always needs
> > to be checked against the queue limits of that queue.
> > Otherwise the calculations for nr_phys_segments might be wrong,
> > leading to a crash in scsi_init_sgtable().
> >
> > To clarify this the patch renames blk_rq_check_limits()
> > to blk_cloned_rq_check_limits() and removes the symbol
> > export, as the new function should only be used for
> > cloned requests and never exported.
> >
> > Cc: Mike Snitzer <snitzer@xxxxxxxxxx>
> > Cc: Ewan Milne <emilne@xxxxxxxxxx>
> > Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
> > Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
>
> Patch looks good. Thanks for getting to the bottom of this.
>
> Jens, please add these extra tags when you pick this up:
>
> Fixes: e2a60da74 ("block: Clean up special command handling logic")
> Cc: stable@xxxxxxxxxxxxxxx # 3.7+
> Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>

I'm still seeing the issue (BUG at drivers/scsi/scsi_lib.c:1096!) even
with this patch applied.

markus@x4 linux % git describe
v4.4-rc2-215-g081f3698e606

--
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/