Hi Suravee,
Moreover, seems we need to add irq_domain_free_fwnode to gicv2m_teardown():Sorry, I missed you already did something similar in your patch.
static void gicv2m_teardown(void)
{
struct v2m_data *v2m, *tmp;
list_for_each_entry_safe(v2m, tmp, &v2m_nodes, entry) {
+ struct fwnode_handle *handle = v2m->fwnode;
+
list_del(&v2m->entry);
kfree(v2m->bm);
iounmap(v2m->base);
- of_node_put(to_of_node(v2m->fwnode));
+ if (is_of_node(handle))
+ of_node_put(to_of_node(handle));
+ else if (is_irqchip_node(handle))
+ irq_domain_free_fwnode(handle);
kfree(v2m);
}
}