[PATCH] irq-devres: fix failure path of devm_request_irq()
authorTejun Heo <htejun@gmail.com>
Sat, 7 Apr 2007 05:59:41 +0000 (14:59 +0900)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 7 Apr 2007 17:05:21 +0000 (10:05 -0700)
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>
kernel/irq/devres.c

index 85a430da0fb63fb02c9e82e77910401d8d2adeac..d8ee241115f56cd741f0db41dc207484d2cb49ec 100644 (file)
@@ -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;
        }