FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 12-08-2009, 02:28 PM
Steve Conklin
 
Default drm/i915: Avoid NULL dereference with component_only tv_modes

SRU Justification: This patch fixes a regression that has
caused problems for users of another distribution. We
probably have users experiencing the same problem.

The patch is sane and minimal. The patch is in drm-next,
but not yet in Linus's tree or stable.

Bug #494045

----------------
 
Old 12-08-2009, 04:20 PM
Leann Ogasawara
 
Default drm/i915: Avoid NULL dereference with component_only tv_modes

On Tue, 2009-12-08 at 09:28 -0600, Steve Conklin wrote:
> SRU Justification: This patch fixes a regression that has
> caused problems for users of another distribution. We
> probably have users experiencing the same problem.

Just for a data point, I had bdmurray do a quick query of all
OopsText.txt files attached to Launchpad bug reports to see if there
were any existing bugs which would be resolved by this patch. The
search came back empty.

> The patch is sane and minimal. The patch is in drm-next,
> but not yet in Linus's tree or stable.

Aside from the unnecessary cosmetic changes, this patch looks sane as
it's checking that video_levels is not null before dereferencing. There
should be a very low risk of regression.

My only concern is that this is deviating slightly from our normal SRU
policy that the patch must be in Linus' tree first and that we
preferably want to have the patch merged into Karmic via upstream
stable. Stefan, your thoughts?

As far as the content of the patch itself, I'll give it my ack.

Acked-by: Leann Ogasawara <leann.ogasawara@canonical.com>

Thanks,
Leann

> Bug #494045
>
> ----------------
>
> From d271817baecbccb47da0d9f28c285a0dae8a06b7 Mon Sep 17 00:00:00 2001
> From: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Fri, 27 Nov 2009 13:06:56 +0000
> Subject: [PATCH] drm/i915: Avoid NULL dereference with component_only tv_modes
>
> In commit d2d9f2324, the guard for a valid video mode was removed. This
> caused the regression:
>
> kernel crash during kms graphic boot on Intel GM4500 platform
> https://bugzilla.redhat.com/show_bug.cgi?id=540218
>
> This patches changes the logic slightly not to rely on a coupled
> variable, but to just check whether the video_modes is valid before
> dereferencing.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Zhenyu Wang <zhenyu.z.wang@intel.com>
> [ickle: Actually reference the correct bug report]
> Acked-by: Zhenyu Wang <zhenyuw@linux.intel.com>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
> drivers/gpu/drm/i915/intel_tv.c | 11 ++++-------
> 1 files changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index a0e4bc4..d7465ca 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1213,20 +1213,17 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
> tv_ctl |= TV_TRILEVEL_SYNC;
> if (tv_mode->pal_burst)
> tv_ctl |= TV_PAL_BURST;
> +
> scctl1 = 0;
> - /* dda1 implies valid video levels */
> - if (tv_mode->dda1_inc) {
> + if (tv_mode->dda1_inc)
> scctl1 |= TV_SC_DDA1_EN;
> - }
> -
> if (tv_mode->dda2_inc)
> scctl1 |= TV_SC_DDA2_EN;
> -
> if (tv_mode->dda3_inc)
> scctl1 |= TV_SC_DDA3_EN;
> -
> scctl1 |= tv_mode->sc_reset;
> - scctl1 |= video_levels->burst << TV_BURST_LEVEL_SHIFT;
> + if (video_levels)
> + scctl1 |= video_levels->burst << TV_BURST_LEVEL_SHIFT;
> scctl1 |= tv_mode->dda1_inc << TV_SCDDA1_INC_SHIFT;
>
> scctl2 = tv_mode->dda2_size << TV_SCDDA2_SIZE_SHIFT |
> --
> 1.6.3.3


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 12-16-2009, 10:22 PM
Stefan Bader
 
Default drm/i915: Avoid NULL dereference with component_only tv_modes

Steve Conklin wrote:
> SRU Justification: This patch fixes a regression that has
> caused problems for users of another distribution. We
> probably have users experiencing the same problem.
>
> The patch is sane and minimal. The patch is in drm-next,
> but not yet in Linus's tree or stable.
>
> Bug #494045
>

Ok, as this is upstream now and a regression/oops I took the
patch and forwarded it to stable.
I also applied it to the Karmic tree as a potential NULL pointer
violation is of high enough severity.

-Stefan


> ----------------
>
> From d271817baecbccb47da0d9f28c285a0dae8a06b7 Mon Sep 17 00:00:00 2001
> From: Chris Wilson <chris@chris-wilson.co.uk>
> Date: Fri, 27 Nov 2009 13:06:56 +0000
> Subject: [PATCH] drm/i915: Avoid NULL dereference with component_only tv_modes
>
> In commit d2d9f2324, the guard for a valid video mode was removed. This
> caused the regression:
>
> kernel crash during kms graphic boot on Intel GM4500 platform
> https://bugzilla.redhat.com/show_bug.cgi?id=540218
>
> This patches changes the logic slightly not to rely on a coupled
> variable, but to just check whether the video_modes is valid before
> dereferencing.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Zhenyu Wang <zhenyu.z.wang@intel.com>
> [ickle: Actually reference the correct bug report]
> Acked-by: Zhenyu Wang <zhenyuw@linux.intel.com>
> Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---
> drivers/gpu/drm/i915/intel_tv.c | 11 ++++-------
> 1 files changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index a0e4bc4..d7465ca 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1213,20 +1213,17 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
> tv_ctl |= TV_TRILEVEL_SYNC;
> if (tv_mode->pal_burst)
> tv_ctl |= TV_PAL_BURST;
> +
> scctl1 = 0;
> - /* dda1 implies valid video levels */
> - if (tv_mode->dda1_inc) {
> + if (tv_mode->dda1_inc)
> scctl1 |= TV_SC_DDA1_EN;
> - }
> -
> if (tv_mode->dda2_inc)
> scctl1 |= TV_SC_DDA2_EN;
> -
> if (tv_mode->dda3_inc)
> scctl1 |= TV_SC_DDA3_EN;
> -
> scctl1 |= tv_mode->sc_reset;
> - scctl1 |= video_levels->burst << TV_BURST_LEVEL_SHIFT;
> + if (video_levels)
> + scctl1 |= video_levels->burst << TV_BURST_LEVEL_SHIFT;
> scctl1 |= tv_mode->dda1_inc << TV_SCDDA1_INC_SHIFT;
>
> scctl2 = tv_mode->dda2_size << TV_SCDDA2_SIZE_SHIFT |


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 06:53 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org