[PATCH 1/4] um: virtio_uml: free command if adding to virtqueue failed
benjamin at sipsolutions.net
benjamin at sipsolutions.net
Thu Feb 9 01:00:02 PST 2023
From: Benjamin Berg <benjamin.berg at intel.com>
If adding the command fails (i.e. the virtqueue is broken) then free it
again if the function allocated a new buffer for it.
Change-Id: I03d2c687aeccb8bc8da280925ffdaeb8fb70eee7
Fixes: 68f5d3f3b654 ("um: add PCI over virtio emulation driver")
Signed-off-by: Benjamin Berg <benjamin.berg at intel.com>
---
arch/um/drivers/virt-pci.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/um/drivers/virt-pci.c b/arch/um/drivers/virt-pci.c
index 3ac220dafec4..3b637ad75ec8 100644
--- a/arch/um/drivers/virt-pci.c
+++ b/arch/um/drivers/virt-pci.c
@@ -132,8 +132,11 @@ static int um_pci_send_cmd(struct um_pci_device *dev,
out ? 1 : 0,
posted ? cmd : HANDLE_NO_FREE(cmd),
GFP_ATOMIC);
- if (ret)
+ if (ret) {
+ if (posted)
+ kfree(cmd);
goto out;
+ }
if (posted) {
virtqueue_kick(dev->cmd_vq);
--
2.39.1
More information about the linux-um
mailing list