diff mbox

nouveau: need to handle failed allocation

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

Commit Message

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

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

Comments

Ben Skeggs Jan. 29, 2016, 3:18 a.m. UTC | #1
On 01/29/2016 10:12 AM, Insu Yun wrote:
> 
> On Thu, Jan 28, 2016 at 7:08 PM, Ilia Mirkin <imirkin@alum.mit.edu
> <mailto:imirkin@alum.mit.edu>> wrote:
> 
>     On Thu, Jan 28, 2016 at 7:09 PM, Insu Yun <wuninsu@gmail.com
>     <mailto:wuninsu@gmail.com>> wrote:
>     > drm_property_create_range can be failed in memory pressure.
>     > So, it needs to be handled.
>     >
>     > Signed-off-by: Insu Yun <wuninsu@gmail.com <mailto:wuninsu@gmail.com>>
>     > ---
>     >  drivers/gpu/drm/nouveau/nouveau_display.c | 6 ++++++
>     >  1 file changed, 6 insertions(+)
>     >
>     > diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
>     > index 24be27d..26b4902 100644
>     > --- a/drivers/gpu/drm/nouveau/nouveau_display.c
>     > +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
>     > @@ -443,6 +443,12 @@ nouveau_display_create_properties(struct drm_device *dev)
>     >         /* -100..+100 */
>     >         disp->color_vibrance_property =
>     >                 drm_property_create_range(dev, 0, "color vibrance", 0, 200);
>     > +
>     > +       if (!disp->underscan_hborder_property ||
>     > +                       !disp->underscan_vborder_property ||
>     > +                       !disp->vibrant_hue_property ||
>     > +                       !disp->color_vibrance_property)
>     > +               return;
> 
>     Aren't we at the end of the function anyways?
> 
> 
> Sorry. it is not perfect patch 
> I found this by my static analyzer.
> I have limited knowledge about this driver.
> I don't want to mass up your driver.
> What I want to do is to tell you there is a bug.
> I think we need to return error to caller.
I'm not so sure we do.  We check for valid pointers for these when
they're actually used, so no OOPS will occur.  Worst case, the driver
still loads correctly with some missing properties.

Ben.

>  
> 
> 
>     >  }
>     >
>     >  int
>     > --
>     > 1.9.1
>     >
> 
> 
> 
> 
> -- 
> Regards
> Insu Yun
diff mbox

Patch

diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 24be27d..26b4902 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -443,6 +443,12 @@  nouveau_display_create_properties(struct drm_device *dev)
 	/* -100..+100 */
 	disp->color_vibrance_property =
 		drm_property_create_range(dev, 0, "color vibrance", 0, 200);
+
+	if (!disp->underscan_hborder_property ||
+			!disp->underscan_vborder_property ||
+			!disp->vibrant_hue_property ||
+			!disp->color_vibrance_property)
+		return;
 }
 
 int