Message ID | 20181019123037.17852-1-mika.kuoppala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/1] drm/i915: Avoid initializing framebuffer without pipes | expand |
Quoting Mika Kuoppala (2018-10-19 13:30:37) > If we try to initialize a framebuffer without pipes, we get oops > as we fail to get valid crtc for a PIPE A, on trying to find > pitch limits. This is easily demonstrated by trying to init > framebuffer with displays disabled by 'i915.disable_display=1' > kernel cmdline. > > Fix this by omitting framebuffer init early if there are no pipes. > > Testcase: igt/kms_addfb_basic > Cc: Ville Syrjala <ville.syrjala@linux.intel.com> > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> To which Ville previously replied with the suggestion of preventing the ioctl from even getting this far, to whit if (!INTEL_INFO(dev_priv)->num_pipes) i915->drm.driver_features &= ~DRIVER_MODESET See https://patchwork.freedesktop.org/series/51000/ -Chris
On Fri, 19 Oct 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote: > Quoting Mika Kuoppala (2018-10-19 13:30:37) >> If we try to initialize a framebuffer without pipes, we get oops >> as we fail to get valid crtc for a PIPE A, on trying to find >> pitch limits. This is easily demonstrated by trying to init >> framebuffer with displays disabled by 'i915.disable_display=1' >> kernel cmdline. >> >> Fix this by omitting framebuffer init early if there are no pipes. >> >> Testcase: igt/kms_addfb_basic >> Cc: Ville Syrjala <ville.syrjala@linux.intel.com> >> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > > To which Ville previously replied with the suggestion of preventing the > ioctl from even getting this far, to whit > > if (!INTEL_INFO(dev_priv)->num_pipes) > i915->drm.driver_features &= ~DRIVER_MODESET > > See https://patchwork.freedesktop.org/series/51000/ As well as https://patchwork.freedesktop.org/series/50962/ BR, Jani. > -Chris > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoting Jani Nikula (2018-10-22 15:09:06) > On Fri, 19 Oct 2018, Chris Wilson <chris@chris-wilson.co.uk> wrote: > > Quoting Mika Kuoppala (2018-10-19 13:30:37) > >> If we try to initialize a framebuffer without pipes, we get oops > >> as we fail to get valid crtc for a PIPE A, on trying to find > >> pitch limits. This is easily demonstrated by trying to init > >> framebuffer with displays disabled by 'i915.disable_display=1' > >> kernel cmdline. > >> > >> Fix this by omitting framebuffer init early if there are no pipes. > >> > >> Testcase: igt/kms_addfb_basic > >> Cc: Ville Syrjala <ville.syrjala@linux.intel.com> > >> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > > > > To which Ville previously replied with the suggestion of preventing the > > ioctl from even getting this far, to whit > > > > if (!INTEL_INFO(dev_priv)->num_pipes) > > i915->drm.driver_features &= ~DRIVER_MODESET > > > > See https://patchwork.freedesktop.org/series/51000/ > > As well as https://patchwork.freedesktop.org/series/50962/ That doesn't seem to fix this particular or similar oopses. -Chris
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index fc7e3b0bd95c..c1685395c67c 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -14312,6 +14312,9 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb, stride = i915_gem_object_get_stride(obj); i915_gem_object_unlock(obj); + if (INTEL_INFO(dev_priv)->num_pipes == 0) + goto err; + if (mode_cmd->flags & DRM_MODE_FB_MODIFIERS) { /* * If there's a fence, enforce that
If we try to initialize a framebuffer without pipes, we get oops as we fail to get valid crtc for a PIPE A, on trying to find pitch limits. This is easily demonstrated by trying to init framebuffer with displays disabled by 'i915.disable_display=1' kernel cmdline. Fix this by omitting framebuffer init early if there are no pipes. Testcase: igt/kms_addfb_basic Cc: Ville Syrjala <ville.syrjala@linux.intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/i915/intel_display.c | 3 +++ 1 file changed, 3 insertions(+)