Merge tag 'block-6.1-2022-12-08' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Dec 2022 23:53:39 +0000 (15:53 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Dec 2022 23:53:39 +0000 (15:53 -0800)
Pull block fix from Jens Axboe:
 "A small fix for initializing the NVMe quirks before initializing the
  subsystem"

* tag 'block-6.1-2022-12-08' of git://git.kernel.dk/linux:
  nvme initialize core quirks before calling nvme_init_subsystem

drivers/nvme/host/core.c

index 69e333922beaaec8824c0432156c1f20eeaf81a5..7e3893d06babdf1620623cc7c6cf68965fd3a5f7 100644 (file)
@@ -3095,10 +3095,6 @@ static int nvme_init_identify(struct nvme_ctrl *ctrl)
        if (!ctrl->identified) {
                unsigned int i;
 
-               ret = nvme_init_subsystem(ctrl, id);
-               if (ret)
-                       goto out_free;
-
                /*
                 * Check for quirks.  Quirk can depend on firmware version,
                 * so, in principle, the set of quirks present can change
@@ -3111,6 +3107,10 @@ static int nvme_init_identify(struct nvme_ctrl *ctrl)
                        if (quirk_matches(id, &core_quirks[i]))
                                ctrl->quirks |= core_quirks[i].quirks;
                }
+
+               ret = nvme_init_subsystem(ctrl, id);
+               if (ret)
+                       goto out_free;
        }
        memcpy(ctrl->subsys->firmware_rev, id->fr,
               sizeof(ctrl->subsys->firmware_rev));