qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Klaus Jensen <its@irrelevant.dk>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>,
	qemu-block@nongnu.org, Klaus Jensen <k.jensen@samsung.com>,
	Gollu Appalanaidu <anaidu.gollu@samsung.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Keith Busch <kbusch@kernel.org>
Subject: Re: [PATCH for-6.0 v2 4/8] hw/block/nvme: fix controller namespaces array indexing
Date: Tue, 6 Apr 2021 20:21:22 +0200	[thread overview]
Message-ID: <YGymog1yYgf+9Txk@apples.localdomain> (raw)
In-Reply-To: <YGwNipvKFR94iUvq@apples.localdomain>

[-- Attachment #1: Type: text/plain, Size: 1805 bytes --]

On Apr  6 09:28, Klaus Jensen wrote:
> On Apr  6 09:01, Philippe Mathieu-Daudé wrote:
> > On 4/5/21 7:54 PM, Klaus Jensen wrote:
> > > From: Klaus Jensen <k.jensen@samsung.com>
> > > 
> > > The controller namespaces array being 0-indexed requires 'nsid - 1'
> > > everywhere. Something that is easy to miss. Align the controller
> > > namespaces array with the subsystem namespaces array such that both are
> > > 1-indexed.
> > 
> > TBH I don't understand the justification.
> 
> Justification is mostly to align with the subsystem device. I like the
> '1-indexed' approach better. And the -1 causes Coverity to complain
> before the assert was added.
> 
> > Assuming you hit a
> > bug and try to protect yourself, maybe now you should also
> > check for
> > 
> >   assert(n->namespaces[0] == NULL);
> > 
> > somewhere. In nvme_ns() maybe?
> > 
> 
> That is definitely a state that should always hold, I guess we can do
> that, but we do already guard all "insertions" into the namespace array
> by an assert on the nsid. Then again, asserting here makes sure that we
> don't introduce something else that inserts on this invalid position.
> 
> So, good point, I'll add it.
> 

Then again again.

I don't see the reason for the assert. Even if something ends up there 
by mistake we will never return it. If something ends up there due to 
new code, that nvme_ns() will always return NULL when nsid is zero and 
that should weed out the bug easily.

I'll update the commit message to make it clear that this is about 
making both the subsystem and controller namespaces arrays 1-indexed. 
Them being indexed differently is a recipe for disaster I'd say.

In anycase, I it actually a stretch to call this a bug fix, so I'll drop 
it and queue it up for v6.1.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2021-04-06 18:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-05 17:54 [PATCH for-6.0 v2 0/8] hw/block/nvme: misc fixes Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 1/8] hw/block/nvme: fix pi constraint check Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 2/8] hw/block/nvme: fix missing string representation for ns attachment Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 3/8] hw/block/nvme: fix the nsid 'invalid' value Klaus Jensen
2021-04-06  6:53   ` Philippe Mathieu-Daudé
2021-04-06  7:16     ` Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 4/8] hw/block/nvme: fix controller namespaces array indexing Klaus Jensen
2021-04-06  7:01   ` Philippe Mathieu-Daudé
2021-04-06  7:28     ` Klaus Jensen
2021-04-06 18:21       ` Klaus Jensen [this message]
2021-04-05 17:54 ` [PATCH for-6.0 v2 5/8] hw/block/nvme: fix warning about legacy namespace configuration Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 6/8] hw/block/nvme: update dmsrl limit on namespace detachment Klaus Jensen
2021-04-06  7:10   ` Philippe Mathieu-Daudé
2021-04-06  7:24     ` Klaus Jensen
2021-04-09 17:39       ` Thomas Huth
2021-04-12  7:26         ` Klaus Jensen
2021-04-05 17:54 ` [PATCH for-6.0 v2 7/8] hw/block/nvme: fix handling of private namespaces Klaus Jensen
2021-04-06  6:23   ` Minwoo Im
2021-04-05 17:54 ` [PATCH for-6.0 v2 8/8] hw/block/nvme: add missing copyright headers Klaus Jensen
2021-04-05 18:59 ` [PATCH for-6.0 v2 0/8] hw/block/nvme: misc fixes Keith Busch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YGymog1yYgf+9Txk@apples.localdomain \
    --to=its@irrelevant.dk \
    --cc=anaidu.gollu@samsung.com \
    --cc=fam@euphon.net \
    --cc=k.jensen@samsung.com \
    --cc=kbusch@kernel.org \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).