[RFC PATCH] nvme-fc: move tagset removal to nvme_fc_delete_ctrl()
Ewan Milne
emilne at redhat.com
Fri Jan 17 14:06:07 PST 2025
I'll work with Ming & Marco on this and see if we can get this straightened out.
-Ewan
On Thu, Jan 16, 2025 at 1:10 AM Christoph Hellwig <hch at lst.de> wrote:
>
> On Mon, Jan 13, 2025 at 08:44:46PM +0800, Ming Lei wrote:
> > Now target is removed from nvme_fc_ctrl_free() which is the ctrl->ref
> > release handler. And even admin queue is unquiesced there, this way
> > is definitely wrong because the ctr->ref is grabbed when submitting
> > command.
> >
> > And Marco observed that nvme_fc_ctrl_free() can be called from request
> > completion code path, and trigger kernel warning since request completes
> > from softirq context.
> >
> > Fix the issue by moveing target removal into nvme_fc_delete_ctrl(),
> > which is also aligned with nvme-tcp and nvme-rdma.
> >
>
> Yeah, the current placement is wrong. Can I talk someone to make
> the whole setup/teardown process in nvme-fc match that of the other
> fabrics (and slightly less so PCIe) order? I know a long time ago
> Sagi was atually looking into sharing more code as well, but that
> would be a next step.
>
> But I'd really like to have one known working sequence instead
> of various different ones.
>
More information about the Linux-nvme
mailing list