lkml.org 
[lkml]   [2010]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] staging: mrst-touchscreen: fix leaks
    Date
    mrstouch_probe() must unregister input device, free requested IRQ and
    input device in error path.

    Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
    ---
    drivers/staging/mrst-touchscreen/intel-mid-touch.c | 9 +++++++--
    1 files changed, 7 insertions(+), 2 deletions(-)

    diff --git a/drivers/staging/mrst-touchscreen/intel-mid-touch.c b/drivers/staging/mrst-touchscreen/intel-mid-touch.c
    index abba22f..8a72bbf 100644
    --- a/drivers/staging/mrst-touchscreen/intel-mid-touch.c
    +++ b/drivers/staging/mrst-touchscreen/intel-mid-touch.c
    @@ -779,7 +779,7 @@ static int __devinit mrstouch_probe(struct spi_device *mrstouch_spi)
    0, "mrstouch", tsdev);
    if (err) {
    dev_err(&tsdev->spi->dev, "unable to allocate irq\n");
    - goto mrstouch_err_free_mem;
    + goto mrstouch_err_unreg_input;
    }

    tsdev->pendet_thrd = kthread_run(mrstouch_pendet,
    @@ -787,11 +787,16 @@ static int __devinit mrstouch_probe(struct spi_device *mrstouch_spi)
    if (IS_ERR(tsdev->pendet_thrd)) {
    dev_err(&tsdev->spi->dev, "kthread_run failed\n");
    err = PTR_ERR(tsdev->pendet_thrd);
    - goto mrstouch_err_free_mem;
    + goto mrstouch_err_free_irq;
    }
    mrstouch_debug("%s", "Driver initialized");
    return 0;

    +mrstouch_err_free_irq:
    + free_irq(myirq, tsdev);
    +mrstouch_err_unreg_input:
    + input_unregister_device(mrstouchdevp->input);
    + input_free_device(mrstouchdevp->input);
    mrstouch_err_free_mem:
    kfree(tsdev);
    return err;
    --
    1.7.0.4


    \
     
     \ /
      Last update: 2010-07-12 16:51    [W:0.022 / U:0.976 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site