From: Linus Torvalds Date: Thu, 12 Jun 2014 04:10:33 +0000 (-0700) Subject: Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Tag: firefly_0821_release~176^2~3775 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5c02c392cd2320e8d612376d6b72b6548a680923;p=firefly-linux-kernel-4.4.55.git Merge tag 'virtio-next-for-linus' of git://git./linux/kernel/git/rusty/linux Pull virtio updates from Rusty Russell: "Main excitement is a virtio_scsi fix for alloc holding spinlock on the abort path, which I refuse to CC stable since (1) I discovered it myself, and (2) it's been there forever with no reports" * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: virtio_scsi: don't call virtqueue_add_sgs(... GFP_NOIO) holding spinlock. virtio-rng: fixes for device registration/unregistration virtio-rng: fix boot with virtio-rng device virtio-rng: support multiple virtio-rng devices virtio_ccw: introduce device_lost in virtio_ccw_device virtio: virtio_break_device() to mark all virtqueues broken. --- 5c02c392cd2320e8d612376d6b72b6548a680923 diff --cc drivers/scsi/virtio_scsi.c index d4727b339474,e2a68aece3da..99fdb9403944 --- a/drivers/scsi/virtio_scsi.c +++ b/drivers/scsi/virtio_scsi.c @@@ -484,10 -529,13 +483,9 @@@ static int virtscsi_queuecommand(struc memcpy(cmd->req.cmd.cdb, sc->cmnd, sc->cmd_len); if (virtscsi_kick_cmd(req_vq, cmd, - sizeof cmd->req.cmd, sizeof cmd->resp.cmd, - GFP_ATOMIC) != 0) - sizeof cmd->req.cmd, sizeof cmd->resp.cmd) == 0) - ret = 0; - else - mempool_free(cmd, virtscsi_cmd_pool); - -out: - return ret; ++ sizeof cmd->req.cmd, sizeof cmd->resp.cmd) != 0) + return SCSI_MLQUEUE_HOST_BUSY; + return 0; } static int virtscsi_queuecommand_single(struct Scsi_Host *sh,