Re: [PATCH 08/12] block/nvme: nvme_process_completion() fix bound for cid

2023-09-26 Thread Peter Maydell
On Mon, 25 Sept 2023 at 20:42, Vladimir Sementsov-Ogievskiy
 wrote:
>
> NVMeQueuePair::reqs as length NVME_NUM_REQS, which less than
> NVME_QUEUE_SIZE by 1.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy 
> ---
>  block/nvme.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/block/nvme.c b/block/nvme.c
> index b6e95f0b7e..7f11ce1d46 100644
> --- a/block/nvme.c
> +++ b/block/nvme.c
> @@ -416,9 +416,9 @@ static bool nvme_process_completion(NVMeQueuePair *q)
>  q->cq_phase = !q->cq_phase;
>  }
>  cid = le16_to_cpu(c->cid);
> -if (cid == 0 || cid > NVME_QUEUE_SIZE) {
> -warn_report("NVMe: Unexpected CID in completion queue: 
> %"PRIu32", "
> -"queue size: %u", cid, NVME_QUEUE_SIZE);
> +if (cid == 0 || cid > NVME_NUM_REQS) {
> +warn_report("NVMe: Unexpected CID in completion queue: %" PRIu32
> +", should be within is: 1..%u", cid, NVME_NUM_REQS);
>  continue;
>  }
>  trace_nvme_complete_command(s, q->index, cid);

A slightly different patch for this one was sent to the list back in 2020 but
apparently fell through the cracks:

https://patchew.org/QEMU/20201208144452.91172-1-alex.c...@huawei.com/

-- PMM



Re: [PATCH 08/12] block/nvme: nvme_process_completion() fix bound for cid

2023-09-25 Thread Michael Tokarev

25.09.2023 22:40, Vladimir Sementsov-Ogievskiy wrote:

NVMeQueuePair::reqs as length NVME_NUM_REQS, which less than
NVME_QUEUE_SIZE by 1.



+if (cid == 0 || cid > NVME_NUM_REQS) {
+warn_report("NVMe: Unexpected CID in completion queue: %" PRIu32
+", should be within is: 1..%u", cid, NVME_NUM_REQS);


 - is: I guess :)

/mjt



[PATCH 08/12] block/nvme: nvme_process_completion() fix bound for cid

2023-09-25 Thread Vladimir Sementsov-Ogievskiy
NVMeQueuePair::reqs as length NVME_NUM_REQS, which less than
NVME_QUEUE_SIZE by 1.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
---
 block/nvme.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/block/nvme.c b/block/nvme.c
index b6e95f0b7e..7f11ce1d46 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -416,9 +416,9 @@ static bool nvme_process_completion(NVMeQueuePair *q)
 q->cq_phase = !q->cq_phase;
 }
 cid = le16_to_cpu(c->cid);
-if (cid == 0 || cid > NVME_QUEUE_SIZE) {
-warn_report("NVMe: Unexpected CID in completion queue: %"PRIu32", "
-"queue size: %u", cid, NVME_QUEUE_SIZE);
+if (cid == 0 || cid > NVME_NUM_REQS) {
+warn_report("NVMe: Unexpected CID in completion queue: %" PRIu32
+", should be within is: 1..%u", cid, NVME_NUM_REQS);
 continue;
 }
 trace_nvme_complete_command(s, q->index, cid);
-- 
2.34.1