Re: [PATCH] nvme-core: remove head->effects to fix use-after-free

From: Christoph Hellwig
Date: Fri Nov 17 2023 - 08:28:59 EST


On Wed, Nov 15, 2023 at 10:52:01PM -0500, Keith Busch wrote:
>
> Yes, in section 5.16.1.6, "Commands Supported and Effects":
>
> This log page is used to describe the commands that the controller
> supports and the effects of those commands on the state of the NVM
> subsystem.
>
> Oddly enough, Figure 202 says the scope of the log page is "Controller"
> rather than "Subsystem". Sounds like ECN potential. You can memcmp the
> effects log from each controller for a sanity check if you think some
> subsystem controllers messed that up.

If we really want to be 111% sure we could read the effects for all
controllers and do a logical OR of them, but I think the reason for the
per-controller scope is that for odd subsystems where different
controllers don't actually access the same namespaces these flags
could be different, i.e. one that only does KV, one that does ZNS,
one that does NVM and one that is just an administrative controller.