kfree(map->col_map);
 }
 
+static struct page *its_allocate_prop_table(gfp_t gfp_flags)
+{
+       struct page *prop_page;
+
+       prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
+       if (!prop_page)
+               return NULL;
+
+       /* Priority 0xa0, Group-1, disabled */
+       memset(page_address(prop_page),
+              LPI_PROP_DEFAULT_PRIO | LPI_PROP_GROUP1,
+              LPI_PROPBASE_SZ);
+
+       /* Make sure the GIC will observe the written configuration */
+       gic_flush_dcache_to_poc(page_address(prop_page), LPI_PROPBASE_SZ);
+
+       return prop_page;
+}
+
+
 static int __init its_alloc_lpi_tables(void)
 {
        phys_addr_t paddr;
 
        lpi_id_bits = min_t(u32, gic_rdists->id_bits, ITS_MAX_LPI_NRBITS);
-       gic_rdists->prop_page = alloc_pages(GFP_NOWAIT,
-                                          get_order(LPI_PROPBASE_SZ));
+       gic_rdists->prop_page = its_allocate_prop_table(GFP_NOWAIT);
        if (!gic_rdists->prop_page) {
                pr_err("Failed to allocate PROPBASE\n");
                return -ENOMEM;
        paddr = page_to_phys(gic_rdists->prop_page);
        pr_info("GIC: using LPI property table @%pa\n", &paddr);
 
-       /* Priority 0xa0, Group-1, disabled */
-       memset(page_address(gic_rdists->prop_page),
-              LPI_PROP_DEFAULT_PRIO | LPI_PROP_GROUP1,
-              LPI_PROPBASE_SZ);
-
-       /* Make sure the GIC will observe the written configuration */
-       gic_flush_dcache_to_poc(page_address(gic_rdists->prop_page), LPI_PROPBASE_SZ);
-
        return its_lpi_init(lpi_id_bits);
 }