On Mon, 2020-03-16 at 07:29 -0700, Klaus Jensen wrote: > From: Klaus Jensen <k.jen...@samsung.com> > > 0xffff is not an allowed value for NCQR and NSQR in Set Features on > Number of Queues. > > Signed-off-by: Klaus Jensen <k.jen...@samsung.com> > Acked-by: Keith Busch <kbu...@kernel.org> > Reviewed-by: Maxim Levitsky <mlevi...@redhat.com> > --- > hw/block/nvme.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/block/nvme.c b/hw/block/nvme.c > index 85c7c86b35f0..e56142c4ea99 100644 > --- a/hw/block/nvme.c > +++ b/hw/block/nvme.c > @@ -1155,6 +1155,14 @@ static uint16_t nvme_set_feature(NvmeCtrl *n, NvmeCmd > *cmd, NvmeRequest *req) > blk_set_enable_write_cache(n->conf.blk, dw11 & 1); > break; > case NVME_NUMBER_OF_QUEUES: > + /* > + * NVMe v1.3, Section 5.21.1.7: 0xffff is not an allowed value for > NCQR > + * and NSQR. > + */ > + if ((dw11 & 0xffff) == 0xffff || ((dw11 >> 16) & 0xffff) == 0xffff) { > + return NVME_INVALID_FIELD | NVME_DNR; > + } > + > trace_nvme_dev_setfeat_numq((dw11 & 0xFFFF) + 1, > ((dw11 >> 16) & 0xFFFF) + 1, > n->params.max_ioqpairs,
Reviewed-by: Maxim Levitsky <mlevi...@redhat.com> Best regards, Maxim Levitsky