The patchset LGTM, pushed, thanks.
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Mark Thompson > Sent: Thursday, February 1, 2018 3:58 AM > To: [email protected] > Subject: [Beignet] [PATCH 1/3] Ensure that DRM device uses the i915 driver > > This avoids calling random ioctl()s and returning nonsensical errors for > unsupported devices. In particular, loading is much cleaner on setups where > the > driver needs to iterate over multiple devices to find the correct one because > the > Intel graphics device is not the first DRM device. > > Signed-off-by: Mark Thompson <[email protected]> > --- > src/intel/intel_driver.c | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c index > 45719785..10fe3cc8 100644 > --- a/src/intel/intel_driver.c > +++ b/src/intel/intel_driver.c > @@ -312,6 +312,26 @@ return ret; > } > #endif > > +static int > +intel_driver_check_device(int dev_fd) > +{ > + // Ensure that this is actually an i915 DRM device. > + drmVersion *version; > + int ret; > + version = drmGetVersion(dev_fd); > + if (!version) { > + fprintf(stderr, "drmGetVersion(%d) failed: %s\n", dev_fd, > strerror(errno)); > + close(dev_fd); > + return 0; > + } > + ret = !strcmp(version->name, "i915"); > + drmFreeVersion(version); > + // Don't print an error here if this device is using a different > +driver, > + // because we might be iterating over multiple devices looking for a > + // compatible one. > + return ret; > +} > + > LOCAL int > intel_driver_init_master(intel_driver_t *driver, const char* dev_name) { @@ > - > 326,6 +346,11 @@ if (dev_fd == -1) { > return 0; > } > > +if (!intel_driver_check_device(dev_fd)) { > + close(dev_fd); > + return 0; > +} > + > // Check that we're authenticated > memset(&client, 0, sizeof(drm_client_t)); ret = ioctl(dev_fd, > DRM_IOCTL_GET_CLIENT, &client); @@ -356,6 +381,11 @@ dev_fd = > open(dev_name, O_RDWR); if (dev_fd == -1) > return 0; > > +if (!intel_driver_check_device(dev_fd)) { > + close(dev_fd); > + return 0; > +} > + > ret = intel_driver_init(driver, dev_fd); driver->need_close = 1; > > -- > 2.11.0 > _______________________________________________ > Beignet mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
