TSC2301 touchscreen: fix error path in driver probe function
authorImre Deak <imre.deak@solidboot.com>
Mon, 12 Mar 2007 15:46:25 +0000 (17:46 +0200)
committerTony Lindgren <tony@atomide.com>
Fri, 30 Mar 2007 18:50:48 +0000 (14:50 -0400)
Signed-off-by: Imre Deak <imre.deak@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/spi/tsc2301-ts.c

index da91736..8657b56 100644 (file)
@@ -629,19 +629,23 @@ int __devinit tsc2301_ts_init(struct tsc2301 *tsc,
        }
        set_irq_wake(ts->irq, 1);
 
-       device_create_file(&tsc->spi->dev, &dev_attr_pen_down);
-       device_create_file(&tsc->spi->dev, &dev_attr_disable_ts);
+       if (device_create_file(&tsc->spi->dev, &dev_attr_pen_down) < 0)
+               goto err4;
+       if (device_create_file(&tsc->spi->dev, &dev_attr_disable_ts) < 0)
+               goto err5;
 
        r = input_register_device(idev);
        if (r < 0) {
                dev_err(&tsc->spi->dev, "can't register touchscreen device\n");
-               goto err4;
+               goto err6;
        }
 
        return 0;
-err4:
+err6:
        device_remove_file(&tsc->spi->dev, &dev_attr_disable_ts);
+err5:
        device_remove_file(&tsc->spi->dev, &dev_attr_pen_down);
+err4:
        free_irq(ts->irq, tsc);
 err3:
        tsc2301_ts_stop_scan(tsc);