diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 2f57276e87a2f65cd8c468529484e3ca21f88c8b..ce602dd09bc18c60381c68f0f1310bb168817bed 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -474,6 +474,9 @@ static void unbind_from_irq(unsigned int irq)
 		bind_evtchn_to_cpu(evtchn, 0);
 
 		evtchn_to_irq[evtchn] = -1;
+	}
+
+	if (irq_info[irq].type != IRQT_UNBOUND) {
 		irq_info[irq] = mk_unbound_info();
 
 		dynamic_irq_cleanup(irq);