[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+AMecH1TZc3zVm0OF1VwwTBCrLp9mZnOa5zw59yr_W0WbH_uw@mail.gmail.com>
Date: Wed, 15 Nov 2023 14:44:04 -0800
From: Yuanyuan Zhong <yzhong@...estorage.com>
To: Keith Busch <kbusch@...nel.org>
Cc: Jens Axboe <axboe@...nel.dk>, hch@....de, sagi@...mberg.me,
linux-nvme@...ts.infradead.org, linux-kernel@...r.kernel.org,
randyj@...estorage.com, hcoutinho@...estorage.com
Subject: Re: [PATCH] nvme-core: remove head->effects to fix use-after-free
On Wed, Nov 15, 2023 at 11:55 AM Keith Busch <kbusch@...nel.org> wrote:
>
> On Wed, Nov 15, 2023 at 11:21:53AM -0800, Yuanyuan Zhong wrote:
> > On Wed, Nov 15, 2023 at 11:02 AM Jens Axboe <axboe@...nel.dk> wrote:
> >
> > Do you mean something like this? If not, can you please elaborate
> > "when we need"?
> > - struct nvme_effects_log *cel = xa_load(&ctrl->cels, ns->head->ids.csi);
> > + struct nvme_effects_log *cel = (ns->head->ids.csi == NVME_CSI_NVM) ?
> > + ctrl->effects : xa_load(&ctrl->cels, ns->head->ids.csi);
> > Will it be good to change ctrl->effects to ctrl->effects[3] for
> > already defined CSI?
>
> I suggest either re-assign the cached head->effects to one from a still
> live controller when current path is removed, or move the saved effects
> to the subsystem instead of the controller. All controllers in the
> subsystem should be reporting the same effects log anyway, so
Is it specified in spec that all controllers in the subsystem
should be reporting the same effects log?
> duplicating all that per-controller is kind of wasteful.
Powered by blists - more mailing lists