On 05/24/2017 02:34 AM, Bart Van Assche wrote: > Since BSG only supports request queues for which struct scsi_request > is the first member of their private request data, refuse to register > block layer queues for which struct scsi_request is not the first > member of their private data. > > References: commit bd1599d931ca ("scsi_transport_sas: fix BSG ioctl memory corruption") > References: commit 82ed4db499b8 ("block: split scsi_request out of struct request") > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Omar Sandoval <osandov@xxxxxx> > Cc: Hannes Reinecke <hare@xxxxxxxx> > Cc: linux-block@xxxxxxxxxxxxxxx > --- > block/bsg.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/block/bsg.c b/block/bsg.c > index 6fd08544d77e..f7695bb141d9 100644 > --- a/block/bsg.c > +++ b/block/bsg.c > @@ -750,6 +750,12 @@ static struct bsg_device *bsg_add_device(struct inode *inode, > #ifdef BSG_DEBUG > unsigned char buf[32]; > #endif > + > + if (!blk_queue_scsi_sup(rq)) { > + WARN_ONCE(true, "Attempt to register a non-SCSI queue\n"); > + return ERR_PTR(-EINVAL); > + } > + > if (!blk_get_queue(rq)) > return ERR_PTR(-ENXIO); > > Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)