Re: [Intel-gfx] drm/i915: Avoid accessing the stolen address when itis unavailable

From: Ben Widawsky
Date: Thu Oct 24 2013 - 17:07:23 EST


On Thu, Oct 24, 2013 at 01:17:06PM +0100, Chris Wilson wrote:
> On Fri, Oct 25, 2013 at 12:33:47AM +0800, Chuansheng Liu wrote:
> >
> > In our platform, we hit the the stolen region initialization failure case,
> > such as below log:
> > [drm:i915_stolen_to_physical] *ERROR* conflict detected with stolen region: [0x7b000000]
> >
> > And it causes the dev_priv->mm.stolen_base is NULL, in this case, we should
> > avoid accessing it any more.
> >
> > Here is possible call trace:
> > intel_enable_gt_powersave -- >
> > valleyview_enable_rps -- >
> > valleyview_setup_pctx
>
> The two create_stolen routines are no-ops in that case so all that
> happens instead is that we read VLV_PCBR. However, really if
> i915_gem_object_create_stolen_for_preallocated() fails we should abort
> loading the driver as it means we have a hardware conflict and undefined
> behaviour.
> -Chris
>
> --
> Chris Wilson, Intel Open Source Technology Centre

I agree. We should start treating these things as errors since no
RPS/RC6 is essentially not what anyone wants.

For another immediate solution it seems you can demote the DRM_ERROR to
DRM_DEBUG_DRIVER, and add a check in valleyview_enable_rps for the pctx
value.

--
Ben Widawsky, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/