diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 791270b8bd1ca755e27632c1b68f9f252662a3a0..19c0115092dd7a692c0d035063a3e83c111618a2 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -424,6 +424,8 @@ void __init of_irq_init(const struct of_device_id *matches)
 
 		desc->dev = np;
 		desc->interrupt_parent = of_irq_find_parent(np);
+		if (desc->interrupt_parent == np)
+			desc->interrupt_parent = NULL;
 		list_add_tail(&desc->list, &intc_desc_list);
 	}