summaryrefslogtreecommitdiffstats
path: root/kernel/irq/devres.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-04-07 07:59:41 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-07 19:05:21 +0200
commit7f30e49ee1c2c1e95ce9d2ccce5221ddb793dd60 (patch)
tree06af277806d645ce7c970c64c56613b682f071e4 /kernel/irq/devres.c
parent[PATCH] high-res timers: resume fix (diff)
downloadlinux-7f30e49ee1c2c1e95ce9d2ccce5221ddb793dd60.tar.xz
linux-7f30e49ee1c2c1e95ce9d2ccce5221ddb793dd60.zip
[PATCH] irq-devres: fix failure path of devm_request_irq()
devres should be deallocated with devres_free() not kfree(). This bug corrupts slab on IRQ request failure. Fix it. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Greg KH <gregkh@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/irq/devres.c')
-rw-r--r--kernel/irq/devres.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/irq/devres.c b/kernel/irq/devres.c
index 85a430da0fb6..d8ee241115f5 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;
}