On Thu, Dec 10, 2020 at 03:07:32AM +0000, Chaitanya Kulkarni wrote: > I think something like following (totally untested) will help to avoid the > scenarios like this for ZNS drives so we can rejects the buggy controllers > early to make sure we are spec compliant :- > > # git diff# git diff > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index d9b152bae19d..7b196299c9b7 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -2166,6 +2166,11 @@ static int nvme_update_ns_info(struct nvme_ns > *ns, struct nvme_id_ns *id) > nvme_set_queue_limits(ns->ctrl, ns->queue); > > if (ns->head->ids.csi == NVME_CSI_ZNS) { > + if (!(NVME_CAP_CSS(ns->ctrl->cap) & NVME_CAP_CSS_CSI)) { > + pr_err("zns ns found with ctrl support for CSI"); > + goto out_unfreeze; > + } I think you want to use nvme_multi_css() for the 'if()' check, but otherwise this looks like a valid sanity check.