lkml.org 
[lkml]   [2019]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 280/321] media: atmel: atmel-isc: fix asd memory allocation
    Date
    From: Eugen Hristev <eugen.hristev@microchip.com>

    commit 1e4e25c4959c10728fbfcc6a286f9503d32dfe02 upstream.

    The subsystem will free the asd memory on notifier cleanup, if the asd is
    added to the notifier.
    However the memory is freed using kfree.
    Thus, we cannot allocate the asd using devm_*
    This can lead to crashes and problems.
    To test this issue, just return an error at probe, but cleanup the
    notifier beforehand.

    Fixes: 106267444f ("[media] atmel-isc: add the Image Sensor Controller code")

    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/media/platform/atmel/atmel-isc.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    --- a/drivers/media/platform/atmel/atmel-isc.c
    +++ b/drivers/media/platform/atmel/atmel-isc.c
    @@ -2062,8 +2062,11 @@ static int isc_parse_dt(struct device *d
    break;
    }

    - subdev_entity->asd = devm_kzalloc(dev,
    - sizeof(*subdev_entity->asd), GFP_KERNEL);
    + /* asd will be freed by the subsystem once it's added to the
    + * notifier list
    + */
    + subdev_entity->asd = kzalloc(sizeof(*subdev_entity->asd),
    + GFP_KERNEL);
    if (!subdev_entity->asd) {
    of_node_put(rem);
    ret = -ENOMEM;
    @@ -2209,6 +2212,7 @@ static int atmel_isc_probe(struct platfo
    &subdev_entity->notifier);
    if (ret) {
    dev_err(dev, "fail to register async notifier\n");
    + kfree(subdev_entity->asd);
    goto cleanup_subdev;
    }


    \
     
     \ /
      Last update: 2019-12-03 23:58    [W:4.170 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site