Message ID | 20200930220414.562527-6-kbusch@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | nvme qemu cleanups and fixes | expand |
> -----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
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 > >
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 {
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(-)