diff options
author | Thierry Reding <treding@nvidia.com> | 2019-12-18 14:42:01 +0100 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2019-12-23 14:07:03 +0100 |
commit | f9f6971ebb75f5bc302d77e3380dd6363cc1a0f6 (patch) | |
tree | 919c446498b05bbe855dc1fee1882fe0cb8751cf /drivers/iommu/iommu.c | |
parent | 944c9175397476199d4dd1028d87ddc582c35ee8 (diff) | |
download | lwn-f9f6971ebb75f5bc302d77e3380dd6363cc1a0f6.tar.gz lwn-f9f6971ebb75f5bc302d77e3380dd6363cc1a0f6.zip |
iommu: Implement generic_iommu_put_resv_regions()
Implement a generic function for removing reserved regions. This can be
used by drivers that don't do anything fancy with these regions other
than allocating memory for them.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/iommu.c')
-rw-r--r-- | drivers/iommu/iommu.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index fdd40756dbc1..101f2d68eb6e 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -2229,6 +2229,25 @@ void iommu_put_resv_regions(struct device *dev, struct list_head *list) ops->put_resv_regions(dev, list); } +/** + * generic_iommu_put_resv_regions - Reserved region driver helper + * @dev: device for which to free reserved regions + * @list: reserved region list for device + * + * IOMMU drivers can use this to implement their .put_resv_regions() callback + * for simple reservations. Memory allocated for each reserved region will be + * freed. If an IOMMU driver allocates additional resources per region, it is + * going to have to implement a custom callback. + */ +void generic_iommu_put_resv_regions(struct device *dev, struct list_head *list) +{ + struct iommu_resv_region *entry, *next; + + list_for_each_entry_safe(entry, next, list, list) + kfree(entry); +} +EXPORT_SYMBOL(generic_iommu_put_resv_regions); + struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot, enum iommu_resv_type type) |