host_ack_bmp is allocated with vzalloc but is currently freed via bitmap_free (which ends up using kfree). This is incorrect as allocation and deallocation functions should be paired. Using mismatched alloc/free may lead to undefined behavior, memory leaks, or system instability. This patch fixes the mismatch by freeing host_ack_bmp with vfree to match the vzalloc allocation. Signed-off-by: Zilin Guan --- drivers/vfio/pci/pds/dirty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vfio/pci/pds/dirty.c b/drivers/vfio/pci/pds/dirty.c index c51f5e4c3dd6..481992142f79 100644 --- a/drivers/vfio/pci/pds/dirty.c +++ b/drivers/vfio/pci/pds/dirty.c @@ -82,7 +82,7 @@ static int pds_vfio_dirty_alloc_bitmaps(struct pds_vfio_region *region, host_ack_bmp = vzalloc(bytes); if (!host_ack_bmp) { - bitmap_free(host_seq_bmp); + vfree(host_seq_bmp); return -ENOMEM; } -- 2.34.1