All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups
@ 2021-11-11 15:45 Philippe Mathieu-Daudé
  2021-11-11 15:45 ` [PATCH-for-7.0 1/2] hw/nvme/ctrl: Have nvme_addr_write() take const buffer Philippe Mathieu-Daudé
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-11-11 15:45 UTC (permalink / raw)
  To: qemu-devel
  Cc: Keith Busch, Klaus Jensen, Philippe Mathieu-Daudé, qemu-block

Some trivial notes I took while reviewing CVE-2021-3947:
https://lore.kernel.org/qemu-devel/20211111153125.2258176-1-philmd@redhat.com/

Based-on: <20211111153125.2258176-1-philmd@redhat.com>

*** BLURB HERE ***

Philippe Mathieu-Daudé (2):
  hw/nvme/ctrl: Have nvme_addr_write() take const buffer
  hw/nvme/ctrl: Pass buffers as 'void *' types

 hw/nvme/nvme.h |  4 ++--
 hw/nvme/ctrl.c | 12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

-- 
2.31.1




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH-for-7.0 1/2] hw/nvme/ctrl: Have nvme_addr_write() take const buffer
  2021-11-11 15:45 [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Philippe Mathieu-Daudé
@ 2021-11-11 15:45 ` Philippe Mathieu-Daudé
  2021-11-11 15:45 ` [PATCH-for-7.0 2/2] hw/nvme/ctrl: Pass buffers as 'void *' types Philippe Mathieu-Daudé
  2021-11-11 18:09 ` [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Klaus Jensen
  2 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-11-11 15:45 UTC (permalink / raw)
  To: qemu-devel
  Cc: Keith Busch, Klaus Jensen, Philippe Mathieu-Daudé, qemu-block

The 'buf' argument is not modified, so better pass it as const type.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/nvme/ctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index 634b290e069..c7cce63372a 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -377,7 +377,7 @@ static int nvme_addr_read(NvmeCtrl *n, hwaddr addr, void *buf, int size)
     return pci_dma_read(&n->parent_obj, addr, buf, size);
 }
 
-static int nvme_addr_write(NvmeCtrl *n, hwaddr addr, void *buf, int size)
+static int nvme_addr_write(NvmeCtrl *n, hwaddr addr, const void *buf, int size)
 {
     hwaddr hi = addr + size - 1;
     if (hi < addr) {
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH-for-7.0 2/2] hw/nvme/ctrl: Pass buffers as 'void *' types
  2021-11-11 15:45 [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Philippe Mathieu-Daudé
  2021-11-11 15:45 ` [PATCH-for-7.0 1/2] hw/nvme/ctrl: Have nvme_addr_write() take const buffer Philippe Mathieu-Daudé
@ 2021-11-11 15:45 ` Philippe Mathieu-Daudé
  2021-11-11 18:09 ` [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Klaus Jensen
  2 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-11-11 15:45 UTC (permalink / raw)
  To: qemu-devel
  Cc: Keith Busch, Klaus Jensen, Philippe Mathieu-Daudé, qemu-block

These buffers can be anything, not an array of chars,
so use the 'void *' type for them.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/nvme/nvme.h |  4 ++--
 hw/nvme/ctrl.c | 10 +++++-----
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/hw/nvme/nvme.h b/hw/nvme/nvme.h
index 83ffabade4c..38f3ebf7f6c 100644
--- a/hw/nvme/nvme.h
+++ b/hw/nvme/nvme.h
@@ -495,9 +495,9 @@ static inline uint16_t nvme_cid(NvmeRequest *req)
 }
 
 void nvme_attach_ns(NvmeCtrl *n, NvmeNamespace *ns);
-uint16_t nvme_bounce_data(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+uint16_t nvme_bounce_data(NvmeCtrl *n, void *ptr, uint32_t len,
                           NvmeTxDirection dir, NvmeRequest *req);
-uint16_t nvme_bounce_mdata(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+uint16_t nvme_bounce_mdata(NvmeCtrl *n, void *ptr, uint32_t len,
                            NvmeTxDirection dir, NvmeRequest *req);
 void nvme_rw_complete_cb(void *opaque, int ret);
 uint16_t nvme_map_dptr(NvmeCtrl *n, NvmeSg *sg, size_t len,
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index c7cce63372a..8feefde9d19 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -1140,7 +1140,7 @@ static uint16_t nvme_tx_interleaved(NvmeCtrl *n, NvmeSg *sg, uint8_t *ptr,
     return NVME_SUCCESS;
 }
 
-static uint16_t nvme_tx(NvmeCtrl *n, NvmeSg *sg, uint8_t *ptr, uint32_t len,
+static uint16_t nvme_tx(NvmeCtrl *n, NvmeSg *sg, void *ptr, uint32_t len,
                         NvmeTxDirection dir)
 {
     assert(sg->flags & NVME_SG_ALLOC);
@@ -1176,7 +1176,7 @@ static uint16_t nvme_tx(NvmeCtrl *n, NvmeSg *sg, uint8_t *ptr, uint32_t len,
     return NVME_SUCCESS;
 }
 
-static inline uint16_t nvme_c2h(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+static inline uint16_t nvme_c2h(NvmeCtrl *n, void *ptr, uint32_t len,
                                 NvmeRequest *req)
 {
     uint16_t status;
@@ -1189,7 +1189,7 @@ static inline uint16_t nvme_c2h(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
     return nvme_tx(n, &req->sg, ptr, len, NVME_TX_DIRECTION_FROM_DEVICE);
 }
 
-static inline uint16_t nvme_h2c(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+static inline uint16_t nvme_h2c(NvmeCtrl *n, void *ptr, uint32_t len,
                                 NvmeRequest *req)
 {
     uint16_t status;
@@ -1202,7 +1202,7 @@ static inline uint16_t nvme_h2c(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
     return nvme_tx(n, &req->sg, ptr, len, NVME_TX_DIRECTION_TO_DEVICE);
 }
 
-uint16_t nvme_bounce_data(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+uint16_t nvme_bounce_data(NvmeCtrl *n, void *ptr, uint32_t len,
                           NvmeTxDirection dir, NvmeRequest *req)
 {
     NvmeNamespace *ns = req->ns;
@@ -1218,7 +1218,7 @@ uint16_t nvme_bounce_data(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
     return nvme_tx(n, &req->sg, ptr, len, dir);
 }
 
-uint16_t nvme_bounce_mdata(NvmeCtrl *n, uint8_t *ptr, uint32_t len,
+uint16_t nvme_bounce_mdata(NvmeCtrl *n, void *ptr, uint32_t len,
                            NvmeTxDirection dir, NvmeRequest *req)
 {
     NvmeNamespace *ns = req->ns;
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups
  2021-11-11 15:45 [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Philippe Mathieu-Daudé
  2021-11-11 15:45 ` [PATCH-for-7.0 1/2] hw/nvme/ctrl: Have nvme_addr_write() take const buffer Philippe Mathieu-Daudé
  2021-11-11 15:45 ` [PATCH-for-7.0 2/2] hw/nvme/ctrl: Pass buffers as 'void *' types Philippe Mathieu-Daudé
@ 2021-11-11 18:09 ` Klaus Jensen
  2022-01-26  9:05   ` Klaus Jensen
  2 siblings, 1 reply; 5+ messages in thread
From: Klaus Jensen @ 2021-11-11 18:09 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: Keith Busch, qemu-devel, qemu-block

[-- Attachment #1: Type: text/plain, Size: 630 bytes --]

On Nov 11 16:45, Philippe Mathieu-Daudé wrote:
> Some trivial notes I took while reviewing CVE-2021-3947:
> https://lore.kernel.org/qemu-devel/20211111153125.2258176-1-philmd@redhat.com/
> 
> Based-on: <20211111153125.2258176-1-philmd@redhat.com>
> 
> *** BLURB HERE ***
> 
> Philippe Mathieu-Daudé (2):
>   hw/nvme/ctrl: Have nvme_addr_write() take const buffer
>   hw/nvme/ctrl: Pass buffers as 'void *' types
> 
>  hw/nvme/nvme.h |  4 ++--
>  hw/nvme/ctrl.c | 12 ++++++------
>  2 files changed, 8 insertions(+), 8 deletions(-)
> 

Thanks Philippe, LGTM.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups
  2021-11-11 18:09 ` [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Klaus Jensen
@ 2022-01-26  9:05   ` Klaus Jensen
  0 siblings, 0 replies; 5+ messages in thread
From: Klaus Jensen @ 2022-01-26  9:05 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: Keith Busch, qemu-devel, qemu-block

[-- Attachment #1: Type: text/plain, Size: 741 bytes --]

On Nov 11 19:09, Klaus Jensen wrote:
> On Nov 11 16:45, Philippe Mathieu-Daudé wrote:
> > Some trivial notes I took while reviewing CVE-2021-3947:
> > https://lore.kernel.org/qemu-devel/20211111153125.2258176-1-philmd@redhat.com/
> > 
> > Based-on: <20211111153125.2258176-1-philmd@redhat.com>
> > 
> > *** BLURB HERE ***
> > 
> > Philippe Mathieu-Daudé (2):
> >   hw/nvme/ctrl: Have nvme_addr_write() take const buffer
> >   hw/nvme/ctrl: Pass buffers as 'void *' types
> > 
> >  hw/nvme/nvme.h |  4 ++--
> >  hw/nvme/ctrl.c | 12 ++++++------
> >  2 files changed, 8 insertions(+), 8 deletions(-)
> > 
> 
> Thanks Philippe, LGTM.
> 
> Reviewed-by: Klaus Jensen <k.jensen@samsung.com>

Applied to nvme-next. Thanks!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-01-26  9:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-11 15:45 [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Philippe Mathieu-Daudé
2021-11-11 15:45 ` [PATCH-for-7.0 1/2] hw/nvme/ctrl: Have nvme_addr_write() take const buffer Philippe Mathieu-Daudé
2021-11-11 15:45 ` [PATCH-for-7.0 2/2] hw/nvme/ctrl: Pass buffers as 'void *' types Philippe Mathieu-Daudé
2021-11-11 18:09 ` [PATCH-for-7.0 0/2] hw/nvme/ctrl: Buffer types cleanups Klaus Jensen
2022-01-26  9:05   ` Klaus Jensen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.