diff mbox

gma500: handling failed allocation

Message ID 1454025916-5218-1-git-send-email-wuninsu@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Insu Yun Jan. 29, 2016, 12:05 a.m. UTC
Since drm_property_create_range can be failed in memory pressure, 
it needs to be handled.

Signed-off-by: Insu Yun <wuninsu@gmail.com>
---
 drivers/gpu/drm/gma500/framebuffer.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Alan Cox Jan. 29, 2016, 5:46 p.m. UTC | #1
On Thu, 28 Jan 2016 19:05:16 -0500
Insu Yun <wuninsu@gmail.com> wrote:

> Since drm_property_create_range can be failed in memory pressure, 
> it needs to be handled.
> 
> Signed-off-by: Insu Yun <wuninsu@gmail.com>
> ---
>  drivers/gpu/drm/gma500/framebuffer.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
> index cb95765..31085e4 100644
> --- a/drivers/gpu/drm/gma500/framebuffer.c
> +++ b/drivers/gpu/drm/gma500/framebuffer.c
> @@ -683,6 +683,8 @@ static int psb_create_backlight_property(struct drm_device *dev)
>  		return 0;
>  
>  	backlight = drm_property_create_range(dev, 0, "backlight", 0, 100);
> +	if (!backlight)
> +		return -ENOMEM;
>  
>  	dev_priv->backlight_property = backlight;
>  

NAK.

If we fail to create the backlight we are better off continuing than
failing. The user just loses backlight control rather than having no
display at all.

If you check the callers you'll notice that the only caller doesn't even
check the return code anyway so your patch is a no-op. If you are going
to add error checking to anything with a patch please work back through
the call chain and check the effect of the new error return - if any.

A better patch I think would be to just eliminate the function and turn
it into a tiny bit of inlined code.

I'll send a patch to do that shortly.

Alan
Insu Yun Jan. 29, 2016, 5:49 p.m. UTC | #2
On Fri, Jan 29, 2016 at 12:46 PM, One Thousand Gnomes <
gnomes@lxorguk.ukuu.org.uk> wrote:

> On Thu, 28 Jan 2016 19:05:16 -0500
> Insu Yun <wuninsu@gmail.com> wrote:
>
> > Since drm_property_create_range can be failed in memory pressure,
> > it needs to be handled.
> >
> > Signed-off-by: Insu Yun <wuninsu@gmail.com>
> > ---
> >  drivers/gpu/drm/gma500/framebuffer.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/gma500/framebuffer.c
> b/drivers/gpu/drm/gma500/framebuffer.c
> > index cb95765..31085e4 100644
> > --- a/drivers/gpu/drm/gma500/framebuffer.c
> > +++ b/drivers/gpu/drm/gma500/framebuffer.c
> > @@ -683,6 +683,8 @@ static int psb_create_backlight_property(struct
> drm_device *dev)
> >               return 0;
> >
> >       backlight = drm_property_create_range(dev, 0, "backlight", 0, 100);
> > +     if (!backlight)
> > +             return -ENOMEM;
> >
> >       dev_priv->backlight_property = backlight;
> >
>
> NAK.
>
> If we fail to create the backlight we are better off continuing than
> failing. The user just loses backlight control rather than having no
> display at all.
>
> If you check the callers you'll notice that the only caller doesn't even
> check the return code anyway so your patch is a no-op. If you are going
> to add error checking to anything with a patch please work back through
> the call chain and check the effect of the new error return - if any.
>
> A better patch I think would be to just eliminate the function and turn
> it into a tiny bit of inlined code.
>
> I'll send a patch to do that shortly.
>

Thanks


>
> Alan
>
>
>
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index cb95765..31085e4 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -683,6 +683,8 @@  static int psb_create_backlight_property(struct drm_device *dev)
 		return 0;
 
 	backlight = drm_property_create_range(dev, 0, "backlight", 0, 100);
+	if (!backlight)
+		return -ENOMEM;
 
 	dev_priv->backlight_property = backlight;