mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 04:47:05 +00:00
ACPI/IORT: Fix build error implicit-function-declaration
If CONFIG_ACPI_IORT=y and CONFIG_IOMMU_API is not set,
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-,
will be failed, like this:
drivers/acpi/arm64/iort.c: In function ‘iort_get_rmr_sids’:
drivers/acpi/arm64/iort.c:1406:2: error: implicit declaration of function ‘iort_iommu_rmr_get_resv_regions’; did you mean ‘iort_iommu_get_resv_regions’? [-Werror=implicit-function-declaration]
iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iort_iommu_get_resv_regions
cc1: some warnings being treated as errors
make[3]: *** [drivers/acpi/arm64/iort.o] Error 1
The function iort_iommu_rmr_get_resv_regions()
is declared under CONFIG_IOMMU_API,
and the callers of iort_get_rmr_sids() and iort_put_rmr_sids()
would select IOMMU_API.
To fix this error, move the definitions to #ifdef CONFIG_IOMMU_API.
Fixes: e302eea8f4
("ACPI/IORT: Add a helper to retrieve RMR info directly")
Signed-off-by: Ren Zhijie <renzhijie2@huawei.com>
Acked-by: Hanjun Guo <guohanjun@huawei.com>
Link: https://lore.kernel.org/r/20220726033520.47865-1-renzhijie2@huawei.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
1dcef3d2f3
commit
de0269765b
1 changed files with 28 additions and 28 deletions
|
@ -1162,6 +1162,34 @@ void iort_iommu_get_resv_regions(struct device *dev, struct list_head *head)
|
|||
iort_iommu_rmr_get_resv_regions(fwspec->iommu_fwnode, dev, head);
|
||||
}
|
||||
|
||||
/**
|
||||
* iort_get_rmr_sids - Retrieve IORT RMR node reserved regions with
|
||||
* associated StreamIDs information.
|
||||
* @iommu_fwnode: fwnode associated with IOMMU
|
||||
* @head: Resereved region list
|
||||
*/
|
||||
void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
|
||||
struct list_head *head)
|
||||
{
|
||||
iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iort_get_rmr_sids);
|
||||
|
||||
/**
|
||||
* iort_put_rmr_sids - Free memory allocated for RMR reserved regions.
|
||||
* @iommu_fwnode: fwnode associated with IOMMU
|
||||
* @head: Resereved region list
|
||||
*/
|
||||
void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
|
||||
struct list_head *head)
|
||||
{
|
||||
struct iommu_resv_region *entry, *next;
|
||||
|
||||
list_for_each_entry_safe(entry, next, head, list)
|
||||
entry->free(NULL, entry);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iort_put_rmr_sids);
|
||||
|
||||
static inline bool iort_iommu_driver_enabled(u8 type)
|
||||
{
|
||||
switch (type) {
|
||||
|
@ -1394,34 +1422,6 @@ int iort_dma_get_ranges(struct device *dev, u64 *size)
|
|||
return nc_dma_get_range(dev, size);
|
||||
}
|
||||
|
||||
/**
|
||||
* iort_get_rmr_sids - Retrieve IORT RMR node reserved regions with
|
||||
* associated StreamIDs information.
|
||||
* @iommu_fwnode: fwnode associated with IOMMU
|
||||
* @head: Resereved region list
|
||||
*/
|
||||
void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
|
||||
struct list_head *head)
|
||||
{
|
||||
iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iort_get_rmr_sids);
|
||||
|
||||
/**
|
||||
* iort_put_rmr_sids - Free memory allocated for RMR reserved regions.
|
||||
* @iommu_fwnode: fwnode associated with IOMMU
|
||||
* @head: Resereved region list
|
||||
*/
|
||||
void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
|
||||
struct list_head *head)
|
||||
{
|
||||
struct iommu_resv_region *entry, *next;
|
||||
|
||||
list_for_each_entry_safe(entry, next, head, list)
|
||||
entry->free(NULL, entry);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iort_put_rmr_sids);
|
||||
|
||||
static void __init acpi_iort_register_irq(int hwirq, const char *name,
|
||||
int trigger,
|
||||
struct resource *res)
|
||||
|
|
Loading…
Reference in a new issue