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(+)
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
On Thu, Jan 28, 2016 at 7:09 PM, Insu Yun 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
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?
}
int
1.9.1
On Thu, Jan 28, 2016 at 7:08 PM, Ilia Mirkin imirkin@alum.mit.edu wrote:
On Thu, Jan 28, 2016 at 7:09 PM, Insu Yun 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
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.
}
int
1.9.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
dri-devel@lists.freedesktop.org