[PATCH] drm: turn syncobj timeline support off by default

Daniel Vetter daniel at ffwll.ch
Tue Apr 16 07:43:37 UTC 2019


On Mon, Apr 15, 2019 at 08:48:25PM +0100, Lionel Landwerlin wrote:
> Unfortunately userspace users of this API cannot be publicly disclosed
> yet so disable this stuff by default until all is revealed.
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>  drivers/gpu/drm/Kconfig       | 10 ++++++++++
>  drivers/gpu/drm/drm_syncobj.c | 12 ++++++++++++
>  2 files changed, 22 insertions(+)
> 
> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
> index 5e1bc630b885..5b002793f0e4 100644
> --- a/drivers/gpu/drm/Kconfig
> +++ b/drivers/gpu/drm/Kconfig
> @@ -423,3 +423,13 @@ config DRM_PANEL_ORIENTATION_QUIRKS
>  config DRM_LIB_RANDOM
>  	bool
>  	default n
> +
> +config DRM_SYNCOBJ_TIMELINE
> +	bool "Enable syncobj timeline support"
> +	depends on DRM
> +	default n
> +	help
> +	  Choose this option if you want to enable preliminary support
> +	  for timeline syncobjs.
> +
> +	  If in doubt, say "N".
> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
> index ea22b79a7170..dd1bdd287225 100644
> --- a/drivers/gpu/drm/drm_syncobj.c
> +++ b/drivers/gpu/drm/drm_syncobj.c
> @@ -754,6 +754,9 @@ drm_syncobj_transfer_ioctl(struct drm_device *dev, void *data,
>  	struct drm_syncobj_transfer *args = data;
>  	int ret;
>  
> +	if (!IS_ENABLED(CONFIG_DRM_SYNCOBJ_TIMELINE))
> +		return -ENODEV;

I think the latest rage for this stuff is a module_option_unsafe. Much
easier for igts to set by default (we want to keep CI'ing this ofc). And
_unsafe taints the kernel when you set it, so about equally good.
-Daniel

> +
>  	if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
>  		return -ENODEV;
>  
> @@ -1105,6 +1108,9 @@ drm_syncobj_timeline_wait_ioctl(struct drm_device *dev, void *data,
>  	struct drm_syncobj **syncobjs;
>  	int ret = 0;
>  
> +	if (!IS_ENABLED(CONFIG_DRM_SYNCOBJ_TIMELINE))
> +		return -ENODEV;
> +
>  	if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
>  		return -ENODEV;
>  
> @@ -1209,6 +1215,9 @@ drm_syncobj_timeline_signal_ioctl(struct drm_device *dev, void *data,
>  	uint32_t i, j;
>  	int ret;
>  
> +	if (!IS_ENABLED(CONFIG_DRM_SYNCOBJ_TIMELINE))
> +		return -ENODEV;
> +
>  	if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
>  		return -EOPNOTSUPP;
>  
> @@ -1280,6 +1289,9 @@ int drm_syncobj_query_ioctl(struct drm_device *dev, void *data,
>  	uint32_t i;
>  	int ret;
>  
> +	if (!IS_ENABLED(CONFIG_DRM_SYNCOBJ_TIMELINE))
> +		return -ENODEV;
> +
>  	if (!drm_core_check_feature(dev, DRIVER_SYNCOBJ))
>  		return -ENODEV;
>  
> -- 
> 2.21.0.392.gf8f6787159e
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list