|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 for-4.20? 5/6] radix-tree: introduce RADIX_TREE{,_INIT}()
... now that static initialization is possible. Use RADIX_TREE() for
pci_segments and ivrs_maps.
Requested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
v2: New.
--- a/xen/drivers/passthrough/amd/iommu_init.c
+++ b/xen/drivers/passthrough/amd/iommu_init.c
@@ -31,7 +31,7 @@ static struct tasklet amd_iommu_irq_task
unsigned int __read_mostly amd_iommu_acpi_info;
unsigned int __read_mostly ivrs_bdf_entries;
u8 __read_mostly ivhd_type;
-static struct radix_tree_root ivrs_maps;
+static RADIX_TREE(ivrs_maps);
LIST_HEAD_RO_AFTER_INIT(amd_iommu_head);
bool iommuv2_enabled;
@@ -1408,7 +1408,6 @@ int __init amd_iommu_prepare(bool xt)
goto error_out;
ivrs_bdf_entries = rc;
- radix_tree_init(&ivrs_maps);
for_each_amd_iommu ( iommu )
{
rc = amd_iommu_prepare_one(iommu);
--- a/xen/drivers/passthrough/pci.c
+++ b/xen/drivers/passthrough/pci.c
@@ -68,7 +68,7 @@ bool pcidevs_locked(void)
return rspin_is_locked(&_pcidevs_lock);
}
-static struct radix_tree_root pci_segments;
+static RADIX_TREE(pci_segments);
static inline struct pci_seg *get_pseg(u16 seg)
{
@@ -124,7 +124,6 @@ static int pci_segments_iterate(
void __init pci_segments_init(void)
{
- radix_tree_init(&pci_segments);
if ( !alloc_pseg(0) )
panic("Could not initialize PCI segment 0\n");
}
--- a/xen/include/xen/radix-tree.h
+++ b/xen/include/xen/radix-tree.h
@@ -72,6 +72,9 @@ struct radix_tree_root {
*** radix-tree API starts here **
*/
+#define RADIX_TREE_INIT() {}
+#define RADIX_TREE(name) struct radix_tree_root name = RADIX_TREE_INIT()
+
void radix_tree_init(struct radix_tree_root *root);
void radix_tree_destroy(
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |