[PATCH i-g-t v9 2/7] lib/drmtest: Introduced drm_open_driver_another

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon Feb 19 17:42:32 UTC 2024


Hi Janusz,
On 2024-02-16 at 11:23:58 +0100, Janusz Krzysztofik wrote:
> Hi Kamil, Dominik,
> 
> On Thursday, 15 February 2024 17:10:09 CET Kamil Konieczny wrote:
> > From: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
> > 
> > For user convenience, introduce drm_open_driver_another as
> > a wrapper for __drm_open_driver_another with successful open
> > assert.
> 
> Out of several existing variants of *drm_open_driver* functions, those which 
> names start with "drm_", wrapped around their counterparts which names start 
> with double underscores, used to set up an exit handler that performs 
> necessary cleanups before exit, freeing users from taking care of that.  Don't 
> we want to keep that convention also for drm_open_driver_another() and set up 
> the exit handler from inside that wrapper on success?
> 
> Thanks,
> Janusz
> 

How and what should we unwind here? There is only fd, I do not see
any other var or state to unwind? Am I missing something?

Regards,
Kamil

> > 
> > v2: rebased (Kamil)
> > v6: reword description (Janusz)
> > 
> > Cc: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
> > Signed-off-by: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
> > Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> > ---
> >  lib/drmtest.c | 19 +++++++++++++++++++
> >  lib/drmtest.h |  1 +
> >  2 files changed, 20 insertions(+)
> > 
> > diff --git a/lib/drmtest.c b/lib/drmtest.c
> > index 52b5a2020..73d9159af 100644
> > --- a/lib/drmtest.c
> > +++ b/lib/drmtest.c
> > @@ -563,6 +563,25 @@ int __drm_open_driver_another(int idx, int chipset)
> >  	return fd;
> >  }
> >  
> > +/*
> > + * drm_open_driver_another
> > + * @idx: index of the device you are opening
> > + * @chipset: OR'd flags for each chipset to search, eg. #DRIVER_INTEL
> > + *
> > + * A wrapper for __drm_open_driver with successful open assert.
> > + *
> > + * Returns:
> > + * An open DRM fd
> > + */
> > +int drm_open_driver_another(int idx, int chipset)
> > +{
> > +	int fd = __drm_open_driver_another(idx, chipset);
> > +
> > +	igt_assert_fd(fd);
> > +
> > +	return fd;
> > +}
> > +
> >  /**
> >   * __drm_open_driver:
> >   * @chipset: OR'd flags for each chipset to search, eg. #DRIVER_INTEL
> > diff --git a/lib/drmtest.h b/lib/drmtest.h
> > index 6bc819734..856208c48 100644
> > --- a/lib/drmtest.h
> > +++ b/lib/drmtest.h
> > @@ -101,6 +101,7 @@ void __set_forced_driver(const char *name);
> >  
> >  int __drm_open_device(const char *name, unsigned int chipset);
> >  void drm_load_module(unsigned int chipset);
> > +int drm_open_driver_another(int idx, int chipset);
> >  int drm_open_driver(int chipset);
> >  int drm_open_driver_master(int chipset);
> >  int drm_open_driver_render(int chipset);
> > 
> 
> 
> 
> 


More information about the igt-dev mailing list