diff --git a/kernel/irq/devres.c b/kernel/irq/devres.c
index 85a430da0fb63fb02c9e82e77910401d8d2adeac..d8ee241115f56cd741f0db41dc207484d2cb49ec 100644
--- a/kernel/irq/devres.c
+++ b/kernel/irq/devres.c
@@ -54,7 +54,7 @@ int devm_request_irq(struct device *dev, unsigned int irq,
 
 	rc = request_irq(irq, handler, irqflags, devname, dev_id);
 	if (rc) {
-		kfree(dr);
+		devres_free(dr);
 		return rc;
 	}