From 4faa1c9d3649337eb68b287c0e6c809aebfa24c6 Mon Sep 17 00:00:00 2001 From: Lane Kolbly Date: Thu, 20 May 2021 15:25:56 -0500 Subject: [PATCH] linux: device: unmap regions for linux device This unmaps the device regions which were opened during metal_uio_dev_open. Failure to do this results in a file descriptor leak. Signed-off-by: Lane Kolbly --- lib/system/linux/device.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/system/linux/device.c b/lib/system/linux/device.c index fa1864a..734b473 100644 --- a/lib/system/linux/device.c +++ b/lib/system/linux/device.c @@ -266,7 +266,12 @@ static void metal_uio_dev_close(struct linux_bus *lbus, struct linux_device *ldev) { (void)lbus; + unsigned int i; + for (i = 0; i < ldev->device.num_regions; i++) { + metal_unmap(ldev->device.regions[i].virt, + ldev->device.regions[i].size); + } if (ldev->override) { sysfs_write_attribute(ldev->override, "", 1); ldev->override = NULL;