diff options
author | Tejun Heo <htejun@gmail.com> | 2007-04-07 07:59:41 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-07 19:05:21 +0200 |
commit | 7f30e49ee1c2c1e95ce9d2ccce5221ddb793dd60 (patch) | |
tree | 06af277806d645ce7c970c64c56613b682f071e4 /kernel/irq/devres.c | |
parent | [PATCH] high-res timers: resume fix (diff) | |
download | linux-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.c | 2 |
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; } |