diff mbox series

[5/9] hw/block/nvme: support for admin-only command set

Message ID 20200930220414.562527-6-kbusch@kernel.org
State Accepted
Commit 8c5cea85934eb7b580ced14f7f188e19880d4c1c
Headers show
Series nvme qemu cleanups and fixes | expand

Commit Message

Keith Busch Sept. 30, 2020, 10:04 p.m. UTC
Signed-off-by: Keith Busch <kbusch@kernel.org>
---
 hw/block/nvme.c      | 1 +
 include/block/nvme.h | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Dmitry Fomichev Oct. 1, 2020, 12:11 a.m. UTC | #1
> -----Original Message-----

> From: Keith Busch <kbusch@kernel.org>

> Sent: Wednesday, September 30, 2020 6:04 PM

> To: qemu-block@nongnu.org; qemu-devel@nongnu.org; Klaus Jensen

> <k.jensen@samsung.com>

> Cc: Niklas Cassel <Niklas.Cassel@wdc.com>; Dmitry Fomichev

> <Dmitry.Fomichev@wdc.com>; Kevin Wolf <kwolf@redhat.com>; Philippe

> Mathieu-Daudé <philmd@redhat.com>; Keith Busch <kbusch@kernel.org>

> Subject: [PATCH 5/9] hw/block/nvme: support for admin-only command set

> 

> Signed-off-by: Keith Busch <kbusch@kernel.org>

> ---

>  hw/block/nvme.c      | 1 +

>  include/block/nvme.h | 3 ++-

>  2 files changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/hw/block/nvme.c b/hw/block/nvme.c

> index 6c582e6874..ec7363ea40 100644

> --- a/hw/block/nvme.c

> +++ b/hw/block/nvme.c

> @@ -2755,6 +2755,7 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice

> *pci_dev)

>      NVME_CAP_SET_CQR(n->bar.cap, 1);

>      NVME_CAP_SET_TO(n->bar.cap, 0xf);

>      NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_NVM);

> +    NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_ADMIN_ONLY);


This could be

-     NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_NVM);
+    NVME_CAP_SET_CSS(n->bar.cap, (NVME_CAP_CSS_NVM  | NVME_CAP_CSS_ADMIN_ONLY));

Unfortunately, parentheses are needed above because NVME_CAP_SET_CSS macro and
other similar macros use "val" instead of (val). A possible cleanup topic...

>      NVME_CAP_SET_MPSMAX(n->bar.cap, 4);

> 

>      n->bar.vs = NVME_SPEC_VER;

> diff --git a/include/block/nvme.h b/include/block/nvme.h

> index bc20a2ba5e..521533fd2a 100644

> --- a/include/block/nvme.h

> +++ b/include/block/nvme.h

> @@ -83,7 +83,8 @@ enum NvmeCapMask {

>                                                              << CAP_PMR_SHIFT)

> 

>  enum NvmeCapCss {

> -    NVME_CAP_CSS_NVM = 1 << 0,

> +    NVME_CAP_CSS_NVM        = 1 << 0,

> +    NVME_CAP_CSS_ADMIN_ONLY = 1 << 7,

>  };

> 

>  enum NvmeCcShift {

> --

> 2.24.1
Klaus Jensen Oct. 1, 2020, 4:17 a.m. UTC | #2
On Sep 30 15:04, Keith Busch wrote:
> Signed-off-by: Keith Busch <kbusch@kernel.org>

> ---


Reviewed-by: Klaus Jensen <k.jensen@samsung.com>


>  hw/block/nvme.c      | 1 +

>  include/block/nvme.h | 3 ++-

>  2 files changed, 3 insertions(+), 1 deletion(-)

> 

> diff --git a/hw/block/nvme.c b/hw/block/nvme.c

> index 6c582e6874..ec7363ea40 100644

> --- a/hw/block/nvme.c

> +++ b/hw/block/nvme.c

> @@ -2755,6 +2755,7 @@ static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pci_dev)

>      NVME_CAP_SET_CQR(n->bar.cap, 1);

>      NVME_CAP_SET_TO(n->bar.cap, 0xf);

>      NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_NVM);

> +    NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_ADMIN_ONLY);

>      NVME_CAP_SET_MPSMAX(n->bar.cap, 4);

>  

>      n->bar.vs = NVME_SPEC_VER;

> diff --git a/include/block/nvme.h b/include/block/nvme.h

> index bc20a2ba5e..521533fd2a 100644

> --- a/include/block/nvme.h

> +++ b/include/block/nvme.h

> @@ -83,7 +83,8 @@ enum NvmeCapMask {

>                                                              << CAP_PMR_SHIFT)

>  

>  enum NvmeCapCss {

> -    NVME_CAP_CSS_NVM = 1 << 0,

> +    NVME_CAP_CSS_NVM        = 1 << 0,

> +    NVME_CAP_CSS_ADMIN_ONLY = 1 << 7,

>  };

>  

>  enum NvmeCcShift {

> -- 

> 2.24.1

> 

> 


-- 
One of us - No more doubt, silence or taboo about mental illness.
diff mbox series

Patch

diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index 6c582e6874..ec7363ea40 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -2755,6 +2755,7 @@  static void nvme_init_ctrl(NvmeCtrl *n, PCIDevice *pci_dev)
     NVME_CAP_SET_CQR(n->bar.cap, 1);
     NVME_CAP_SET_TO(n->bar.cap, 0xf);
     NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_NVM);
+    NVME_CAP_SET_CSS(n->bar.cap, NVME_CAP_CSS_ADMIN_ONLY);
     NVME_CAP_SET_MPSMAX(n->bar.cap, 4);
 
     n->bar.vs = NVME_SPEC_VER;
diff --git a/include/block/nvme.h b/include/block/nvme.h
index bc20a2ba5e..521533fd2a 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -83,7 +83,8 @@  enum NvmeCapMask {
                                                             << CAP_PMR_SHIFT)
 
 enum NvmeCapCss {
-    NVME_CAP_CSS_NVM = 1 << 0,
+    NVME_CAP_CSS_NVM        = 1 << 0,
+    NVME_CAP_CSS_ADMIN_ONLY = 1 << 7,
 };
 
 enum NvmeCcShift {