From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751191AbdKTLlY (ORCPT ); Mon, 20 Nov 2017 06:41:24 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:37197 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751151AbdKTLlW (ORCPT ); Mon, 20 Nov 2017 06:41:22 -0500 X-Google-Smtp-Source: AGs4zMZWGPSmxPYYzGM0df91CiwYqL+eHTkPmApsC+rWYVxjpk3ol6JAQPFqpDYegZXBTjUSR/iMfw== Subject: Re: [PATCH v2 4/4] backlight: as3711_bl: fix device-tree node leaks To: Johan Hovold , Lee Jones Cc: Jingoo Han , Bartlomiej Zolnierkiewicz , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, Guennadi Liakhovetski References: <20171120104547.2639-1-johan@kernel.org> <20171120104547.2639-5-johan@kernel.org> From: Daniel Thompson Message-ID: Date: Mon, 20 Nov 2017 11:41:11 +0000 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171120104547.2639-5-johan@kernel.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 20/11/17 10:45, Johan Hovold wrote: > Two framebuffer device-node names were looked up during probe, but were > only used as flags to indicate the presence of two framebuffer device. > > Drop the unused framebuffer name along with a likewise unused device > pointer from the driver data, and update the platform data to pass in > booleans instead of the framebuffer strings. This allows us do drop the > node references acquired during probe, which would otherwise leak. > > Note that there are no other in-kernel users of the modified > platform-data fields. > > Fixes: 59eb2b5e57ea ("drivers/video/backlight/as3711_bl.c: add OF support") > Cc: Guennadi Liakhovetski > Signed-off-by: Johan Hovold Acked-by: Daniel Thompson > --- > drivers/video/backlight/as3711_bl.c | 12 ++++++------ > include/linux/mfd/as3711.h | 4 ++-- > 2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/video/backlight/as3711_bl.c b/drivers/video/backlight/as3711_bl.c > index e55304d5cf07..ca544aa764b8 100644 > --- a/drivers/video/backlight/as3711_bl.c > +++ b/drivers/video/backlight/as3711_bl.c > @@ -28,8 +28,6 @@ enum as3711_bl_type { > > struct as3711_bl_data { > bool powered; > - const char *fb_name; > - struct device *fb_dev; > enum as3711_bl_type type; > int brightness; > struct backlight_device *bl; > @@ -273,7 +271,9 @@ static int as3711_backlight_parse_dt(struct device *dev) > > fb = of_parse_phandle(bl, "su1-dev", 0); > if (fb) { > - pdata->su1_fb = fb->full_name; > + of_node_put(fb); > + > + pdata->su1_fb = true; > > ret = of_property_read_u32(bl, "su1-max-uA", &pdata->su1_max_uA); > if (pdata->su1_max_uA <= 0) > @@ -286,7 +286,9 @@ static int as3711_backlight_parse_dt(struct device *dev) > if (fb) { > int count = 0; > > - pdata->su2_fb = fb->full_name; > + of_node_put(fb); > + > + pdata->su2_fb = true; > > ret = of_property_read_u32(bl, "su2-max-uA", &pdata->su2_max_uA); > if (pdata->su2_max_uA <= 0) > @@ -425,7 +427,6 @@ static int as3711_backlight_probe(struct platform_device *pdev) > > if (pdata->su1_fb) { > su = &supply->su1; > - su->fb_name = pdata->su1_fb; > su->type = AS3711_BL_SU1; > > max_brightness = min(pdata->su1_max_uA, 31); > @@ -436,7 +437,6 @@ static int as3711_backlight_probe(struct platform_device *pdev) > > if (pdata->su2_fb) { > su = &supply->su2; > - su->fb_name = pdata->su2_fb; > su->type = AS3711_BL_SU2; > > switch (pdata->su2_fbprot) { > diff --git a/include/linux/mfd/as3711.h b/include/linux/mfd/as3711.h > index 34cc85864be5..ddd0b953323b 100644 > --- a/include/linux/mfd/as3711.h > +++ b/include/linux/mfd/as3711.h > @@ -108,9 +108,9 @@ struct as3711_regulator_pdata { > }; > > struct as3711_bl_pdata { > - const char *su1_fb; > + bool su1_fb; > int su1_max_uA; > - const char *su2_fb; > + bool su2_fb; > int su2_max_uA; > enum as3711_su2_feedback su2_feedback; > enum as3711_su2_fbprot su2_fbprot; >