[PATCH 1/1] nvme-fabrics: don't check ioccsz/iorcsz for discovery

Caleb Sander csander at purestorage.com
Wed Dec 20 11:40:17 PST 2023


Why? As Max points out, the base NVMe spec says those fields are
reserved for discovery controllers.

On Wed, Dec 20, 2023 at 2:31 PM Sagi Grimberg <sagi at grimberg.me> wrote:
>
>
> > IOCCSZ and IORCSZ are reserved for discovery controllers. Avoid checking
> > their values during identify controller phase.
> >
> > Fixes: 2fcd3ab39826 ("nvme-fabrics: check ioccsz and iorcsz")
> > Reported-by: Daniel Wagner <dwagner at suse.de>
> > Tested-by: Daniel Wagner <dwagner at suse.de>
> > Signed-off-by: Max Gurtovoy <mgurtovoy at nvidia.com>
> > ---
> >   drivers/nvme/host/core.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> > index ee2e4c49892d..b218ac88fcf8 100644
> > --- a/drivers/nvme/host/core.c
> > +++ b/drivers/nvme/host/core.c
> > @@ -3068,14 +3068,14 @@ static int nvme_check_ctrl_fabric_info(struct nvme_ctrl *ctrl, struct nvme_id_ct
> >               return -EINVAL;
> >       }
> >
> > -     if (ctrl->ioccsz < 4) {
> > +     if (!nvme_discovery_ctrl(ctrl) && ctrl->ioccsz < 4) {
> >               dev_err(ctrl->device,
> >                       "I/O queue command capsule supported size %d < 4\n",
> >                       ctrl->ioccsz);
> >               return -EINVAL;
> >       }
> >
> > -     if (ctrl->iorcsz < 1) {
> > +     if (!nvme_discovery_ctrl(ctrl) && ctrl->iorcsz < 1) {
> >               dev_err(ctrl->device,
> >                       "I/O queue response capsule supported size %d < 1\n",
> >                       ctrl->iorcsz);
>
> I still think we should at least warn (and ignore) for discovery
> controllers.
>



More information about the Linux-nvme mailing list