X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=drivers%2Fblock%2Fvirtio_blk.c;h=78dbaab476334a864a0ac8c98a76880440ec6ca3;hb=f7ef8dbe4c4e53007fe9cde32815e7e3a956e2e5;hp=68846897d2139baa1208619469a4ef15385d7aa8;hpb=26064dea2dc65c57d44ad37e645ebe47f1c51828;p=mirror_ubuntu-bionic-kernel.git diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 68846897d213..78dbaab47633 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c @@ -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;