ndev->queues is a pointer to pointer, but the allocation wrongly
requests sizeof(struct nvme_queue). Fix it.

Signed-off-by: Bin Meng <bmeng...@gmail.com>
---

 drivers/nvme/nvme.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
index 2ac0870..5d39cab 100644
--- a/drivers/nvme/nvme.c
+++ b/drivers/nvme/nvme.c
@@ -785,13 +785,13 @@ static int nvme_probe(struct udevice *udev)
                goto free_nvme;
        }
 
-       ndev->queues = malloc(2 * sizeof(struct nvme_queue));
+       ndev->queues = malloc(2 * sizeof(struct nvme_queue *));
        if (!ndev->queues) {
                ret = -ENOMEM;
                printf("Error: %s: Out of memory!\n", udev->name);
                goto free_nvme;
        }
-       memset(ndev->queues, 0, sizeof(2 * sizeof(struct nvme_queue)));
+       memset(ndev->queues, 0, sizeof(2 * sizeof(struct nvme_queue *)));
 
        ndev->prp_pool = malloc(MAX_PRP_POOL);
        if (!ndev->prp_pool) {
-- 
2.9.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to