From nobody Mon Nov 17 12:05:02 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1603807035; cv=none; d=zohomail.com; s=zohoarc; b=iX5bPVPl7tkJtKMEGU3r2SQkFqif2M8O6Jge/7cY0q0EpakRUZbRFGAtgF70t6bhJafLmBvE0UMQPHA6UjhjQKHwm/5tV+Re1EWmUGf7pfdEstA8YrnnCrB8xATvTgymWGr8MkuTl03q+UTtpF0pY9H/ulyU6wHrw/BDuv2BBDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1603807035; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=CnKJRPL31xVnAcjJgHQjDndeYt6tVNjYfmSUE2zuN74=; b=YAVpv/HZh/56Bz9Oj9nfuuw5OlBI9oORP8QozSJRD7ztkgSVMB1YJiGI3y4WHKfC2kKgSuDU6NanWWj1cAHmf9lqXMCYZcRTpIPOwaZf7QMyVHXWIHVIAs3MkF4C9vPPFw1Wbcee9eAtfOweCA35jZRm0Yjfamg/loJiPkx0Y/M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1603807035403110.2341636125625; Tue, 27 Oct 2020 06:57:15 -0700 (PDT) Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-448-d6KHCgK3OpeSp102PY3ghQ-1; Tue, 27 Oct 2020 09:57:12 -0400 Received: by mail-ej1-f69.google.com with SMTP id p19so904129ejy.11 for ; Tue, 27 Oct 2020 06:57:12 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (237.red-88-18-140.staticip.rima-tde.net. [88.18.140.237]) by smtp.gmail.com with ESMTPSA id cw15sm1109814ejb.47.2020.10.27.06.57.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Oct 2020 06:57:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1603807034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CnKJRPL31xVnAcjJgHQjDndeYt6tVNjYfmSUE2zuN74=; b=RidUPOMrous0zB7xzqrwECzcHt+yKAYPHhtFcJrO78dNfPkVM8NnG2Ou1ADmi49KaarJ/y +bkl6ROCT8BAn2PhszGbFUDnrVuz90FR0FtoW5Ygoc+JzbH9hsp3xD36iTe23JihA2pZmZ 9eErogwPFBrTJDFCt6oGPjtjIYRwm0E= X-MC-Unique: d6KHCgK3OpeSp102PY3ghQ-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CnKJRPL31xVnAcjJgHQjDndeYt6tVNjYfmSUE2zuN74=; b=HB3+YBS1uNYHpsGN1ARWGgCtW4utMrNpL4QFXoNIZED5MuBQvWEUmjBdMWSbN4UpFY Gvw7QZRyEVcWw5D10jRt25BArCMu+TPHEnv5xdQXraDaAPubKnTHZX03Ebl2ksZ1YyDU 8m/RLf3nul3v2mSPPGFqG/dBKG50EN/zhIPJdzf/k8IoHnZWEx7b7oYGWt0vsDEJstju CfeU1uGg9towb9uXF3TFVhrzvytCZTDr7Azi9/XGpTiVXYiG+ZmzjXAmAOwdQRSSyh1P m7ZlQaEDhr31WAjco1KWX4noriT6ksI38Li+XRUMZfzzl5jf68SShClEtpiSx1bn4TMW c7Rw== X-Gm-Message-State: AOAM530VlUSwRh0/DIWCbmLi9XAhUrgpHdjFUKzbZ5W8L+ezVz1/oaNS 0UHdy/Km4Kt979pUwwZiggK8FUGVsSULcwnYTL253IRQ0QVrpc96+F6SkC3zZ6fN/4RaQkpgSXJ eDOPp5UN0oEAldA== X-Received: by 2002:aa7:cf0f:: with SMTP id a15mr2488081edy.3.1603807031578; Tue, 27 Oct 2020 06:57:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvCUXDinGiPty4cyztZwsd74U8l4L82wkME6zZcbbfVNW3u/nxxKWmdV1QX7jPFSHS9y65PA== X-Received: by 2002:aa7:cf0f:: with SMTP id a15mr2488074edy.3.1603807031403; Tue, 27 Oct 2020 06:57:11 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Klaus Jensen , qemu-block@nongnu.org, Fam Zheng , Keith Busch , Eric Auger , Stefan Hajnoczi , Kevin Wolf , Max Reitz , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 15/25] block/nvme: Correctly initialize Admin Queue Attributes Date: Tue, 27 Oct 2020 14:55:37 +0100 Message-Id: <20201027135547.374946-16-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201027135547.374946-1-philmd@redhat.com> References: <20201027135547.374946-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) From the specification chapter 3.1.8 "AQA - Admin Queue Attributes" the Admin Submission Queue Size field is a 0=E2=80=99s based value: Admin Submission Queue Size (ASQS): Defines the size of the Admin Submission Queue in entries. Enabling a controller while this field is cleared to 00h produces undefined results. The minimum size of the Admin Submission Queue is two entries. The maximum size of the Admin Submission Queue is 4096 entries. This is a 0=E2=80=99s based value. This bug has never been hit because the device initialization uses a single command synchronously :) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eric Auger Reviewed-by: Stefan Hajnoczi --- block/nvme.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/nvme.c b/block/nvme.c index 2dfcf8c41d7..d5df30ec074 100644 --- a/block/nvme.c +++ b/block/nvme.c @@ -789,9 +789,9 @@ static int nvme_init(BlockDriverState *bs, const char *= device, int namespace, goto out; } s->queue_count =3D 1; - QEMU_BUILD_BUG_ON(NVME_QUEUE_SIZE & 0xF000); - regs->aqa =3D cpu_to_le32((NVME_QUEUE_SIZE << AQA_ACQS_SHIFT) | - (NVME_QUEUE_SIZE << AQA_ASQS_SHIFT)); + QEMU_BUILD_BUG_ON((NVME_QUEUE_SIZE - 1) & 0xF000); + regs->aqa =3D cpu_to_le32(((NVME_QUEUE_SIZE - 1) << AQA_ACQS_SHIFT) | + ((NVME_QUEUE_SIZE - 1) << AQA_ASQS_SHIFT)); regs->asq =3D cpu_to_le64(s->queues[INDEX_ADMIN]->sq.iova); regs->acq =3D cpu_to_le64(s->queues[INDEX_ADMIN]->cq.iova); =20 --=20 2.26.2