Patch "virtio_blk: Fix an SG_IO regression" has been added to the 4.13-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
virtio_blk: Fix an SG_IO regression
to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
virtio_blk-fix-an-sg_io-regression.patch
and it can be found in the queue-4.13 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
efea2abcb03215f2efadfe994ff7f652aaff196bMon Sep 17 00:00:00 2001
From: Bart Van Assche <[email protected]>
Date: Fri, 27 Oct 2017 08:23:21 -0600
Subject: virtio_blk: Fix an SG_IO regression
From: Bart Van Assche <[email protected]>
commit efea2abcb03215f2efadfe994ff7f652aaff196b upstream.
Avoid that submitting an SG_IO ioctl triggers a kernel oops that is preceded by:
usercopy: kernel memory overwrite attempt detected to (null) (<null>) (6 bytes) kernel BUG at mm/usercopy.c:72!
Moved virtblk_initialize_rq() inside CONFIG_VIRTIO_BLK_SCSI.
--- drivers/block/virtio_blk.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
drivers/block/virtio_blk.c +12 -0
@@ -593,10 +593,22 @@ static int virtblk_map_queues(struct blkreturn blk_mq_virtio_map_queues (set, vblk->vdev,0 ); } +#ifdef CONFIG_VIRTIO_BLK_SCSI +static void virtblk_initialize_rq (struct request *req) +{ +struct virtblk_req *vbr =blk_mq_rq_to_pdu (req); + +scsi_req_init (&vbr->sreq); +} +#endif +static const struct blk_mq_ops virtio_mq_ops = { .queue_rq = virtio_queue_rq, .complete = virtblk_request_done, .init_request = virtblk_init_request, +#ifdef CONFIG_VIRTIO_BLK_SCSI + .initialize_rq_fn = virtblk_initialize_rq, +#endif .map_queues = virtblk_map_queues, };
Patches currently in stable-queue which might be from [email protected] are
queue-4.13/virtio_blk-fix-an-sg_io-regression.patch