[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