Check first two header bytes before trying to read the edid blob, to avoid the log being spammed in case qemu has no edid support (old qemu or edid turned off). Fixes: 01f23459cf drm/bochs: add edid support. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c index c90a0d492f..e1f8ffce00 100644 --- a/drivers/gpu/drm/bochs/bochs_hw.c +++ b/drivers/gpu/drm/bochs/bochs_hw.c @@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs) if (!bochs->mmio) return -1; + /* + * Check first two EDID blob header bytes to figure whenever + * edid support is enabled in qemu. + */ + if (readb(bochs->mmio + 0) != 0x00 || + readb(bochs->mmio + 1) != 0xff) + return -1; + kfree(bochs->edid); bochs->edid = drm_do_get_edid(&bochs->connector, bochs_get_edid_block, bochs); -- 2.9.3
On Thu, Dec 20, 2018 at 07:50:01AM +0100, Gerd Hoffmann wrote:> Check first two header bytes before trying to read the edid blob, > to avoid the log being spammed in case qemu has no edid support (old > qemu or edid turned off). > > Fixes: 01f23459cf drm/bochs: add edid support. > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>It's a bit a hack, but makes sense. Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>> --- > drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c > index c90a0d492f..e1f8ffce00 100644 > --- a/drivers/gpu/drm/bochs/bochs_hw.c > +++ b/drivers/gpu/drm/bochs/bochs_hw.c > @@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs) > if (!bochs->mmio) > return -1; > > + /* > + * Check first two EDID blob header bytes to figure whenever > + * edid support is enabled in qemu. > + */ > + if (readb(bochs->mmio + 0) != 0x00 || > + readb(bochs->mmio + 1) != 0xff) > + return -1; > + > kfree(bochs->edid); > bochs->edid = drm_do_get_edid(&bochs->connector, > bochs_get_edid_block, bochs); > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel-- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
On Thu, Dec 20, 2018 at 09:28:26AM +0100, Daniel Vetter wrote:> On Thu, Dec 20, 2018 at 07:50:01AM +0100, Gerd Hoffmann wrote: > > Check first two header bytes before trying to read the edid blob, > > to avoid the log being spammed in case qemu has no edid support (old > > qemu or edid turned off). > > > > Fixes: 01f23459cf drm/bochs: add edid support. > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > It's a bit a hack, but makes sense.On 2nd thought, maybe make it less of a hack by reading all 8 bytes of the header and checking it with drm_edit_is_valid(). -Daniel> > Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch> > > --- > > drivers/gpu/drm/bochs/bochs_hw.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/drivers/gpu/drm/bochs/bochs_hw.c b/drivers/gpu/drm/bochs/bochs_hw.c > > index c90a0d492f..e1f8ffce00 100644 > > --- a/drivers/gpu/drm/bochs/bochs_hw.c > > +++ b/drivers/gpu/drm/bochs/bochs_hw.c > > @@ -89,6 +89,14 @@ int bochs_hw_load_edid(struct bochs_device *bochs) > > if (!bochs->mmio) > > return -1; > > > > + /* > > + * Check first two EDID blob header bytes to figure whenever > > + * edid support is enabled in qemu. > > + */ > > + if (readb(bochs->mmio + 0) != 0x00 || > > + readb(bochs->mmio + 1) != 0xff) > > + return -1; > > + > > kfree(bochs->edid); > > bochs->edid = drm_do_get_edid(&bochs->connector, > > bochs_get_edid_block, bochs); > > -- > > 2.9.3 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel at lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch-- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch