On Wed, Sep 13, 2023 at 12:25:29PM +0000, Niklas Cassel wrote: > > + if (ctrl->ctrl_config & NVME_CC_CRIME) > > + timeout = max(timeout, NVME_CRTO_CRIMT(crto)); > > + else > > + timeout = max(timeout, NVME_CRTO_CRWMT(crto)); > > I saw the original bug report. > But wasn't the problem that these were compared before NVME_CC_CRIME had > been written? > > i.e. is this max() check still needed for the bug reporter's NVMe drive, > after NVME_CC_CRIME was been written and CAP has been re-read? > (If so, would a quirk be better?) The values reported in CRTO don't change with the CC writes. It's only CAP.TO that can change, so we still can't rely on CRTO at any point in the sequence for these devices.