]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/block/virtio_blk.c
blk-mq: introduce BLK_STS_DEV_RESOURCE
[mirror_ubuntu-bionic-kernel.git] / drivers / block / virtio_blk.c
index 68846897d2139baa1208619469a4ef15385d7aa8..78dbaab476334a864a0ac8c98a76880440ec6ca3 100644 (file)
@@ -276,7 +276,7 @@ static blk_status_t virtio_queue_rq(struct blk_mq_hw_ctx *hctx,
                /* Out of mem doesn't actually happen, since we fall back
                 * to direct descriptors */
                if (err == -ENOMEM || err == -ENOSPC)
-                       return BLK_STS_RESOURCE;
+                       return BLK_STS_DEV_RESOURCE;
                return BLK_STS_IOERR;
        }
 
@@ -437,6 +437,8 @@ static int init_vq(struct virtio_blk *vblk)
        if (err)
                num_vqs = 1;
 
+       num_vqs = min_t(unsigned int, nr_cpu_ids, num_vqs);
+
        vblk->vqs = kmalloc_array(num_vqs, sizeof(*vblk->vqs), GFP_KERNEL);
        if (!vblk->vqs)
                return -ENOMEM;