[PATCH] drm: Only use compat ioctl for addfb2 on X86/IA64

Rob Clark robdclark at gmail.com
Wed Sep 14 17:00:48 UTC 2016


On Tue, Sep 13, 2016 at 5:20 PM, Kristian H. Kristensen
<hoegsberg at gmail.com> wrote:
> Similar to struct drm_update_draw, struct drm_mode_fb_cmd2 has an
> unaligned 64 bit field (modifier). This get packed differently between
> 32 bit and 64 bit modes on architectures that can handle unaligned 64
> bit access (X86 and IA64).  Other architectures pack the structs the
> same and don't need the compat wrapper. Use the same condition for
> drm_mode_fb_cmd2 as we use for drm_update_draw.

might not hurt to mention that this only effects stuff using modifiers
in commit msg

Reviewed-by: Rob Clark <robdclark at gmail.com>

> Signed-off-by: Kristian H. Kristensen <hoegsberg at chromium.org>
> ---
>  drivers/gpu/drm/drm_ioc32.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
> index 57676f8..a628975 100644
> --- a/drivers/gpu/drm/drm_ioc32.c
> +++ b/drivers/gpu/drm/drm_ioc32.c
> @@ -1015,6 +1015,7 @@ static int compat_drm_wait_vblank(struct file *file, unsigned int cmd,
>         return 0;
>  }
>
> +#if defined(CONFIG_X86) || defined(CONFIG_IA64)
>  typedef struct drm_mode_fb_cmd232 {
>         u32 fb_id;
>         u32 width;
> @@ -1071,6 +1072,7 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
>
>         return 0;
>  }
> +#endif
>
>  static drm_ioctl_compat_t *drm_compat_ioctls[] = {
>         [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
> @@ -1104,7 +1106,9 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
>         [DRM_IOCTL_NR(DRM_IOCTL_UPDATE_DRAW32)] = compat_drm_update_draw,
>  #endif
>         [DRM_IOCTL_NR(DRM_IOCTL_WAIT_VBLANK32)] = compat_drm_wait_vblank,
> +#if defined(CONFIG_X86) || defined(CONFIG_IA64)
>         [DRM_IOCTL_NR(DRM_IOCTL_MODE_ADDFB232)] = compat_drm_mode_addfb2,
> +#endif
>  };
>
>  /**
> --
> 2.8.0.rc3.226.g39d4020
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list