From 7387c767ea1565c36e324d30e6f75dc0a63431fd Mon Sep 17 00:00:00 2001 From: zrj Date: Wed, 18 May 2016 18:24:30 +0300 Subject: [PATCH] drm cleanup 16/x: Add names to internal ioctl debug traces. With this it prints same output as linux, just 3 years later. Aimed at drm_debug=0x600 mode. Easier on the eyes and saves time: -[drm:drm_ioctl] pid=904, cmd=0xc03064b7, nr=0xb7, dev 0xffffffe1d6299720, auth=1 -[drm:drm_ioctl] pid=904, cmd=0x80086409, nr=0x09, dev 0xffffffe1d6299720, auth=1 -[drm:drm_ioctl] pid=904, cmd=0x2000641f, nr=0x1f, dev 0xffffffe1d6299720, auth=1 -[drm:drm_ioctl] ret = 22 -[drm:drm_ioctl] pid=904, cmd=0x80086409, nr=0x09, dev 0xffffffe1d6299720, auth=1 -[drm:drm_ioctl] pid=904, cmd=0x80086409, nr=0x09, dev 0xffffffe1d6299720, auth=1 -[drm:drm_ioctl] pid=904, cmd=0xc010646c, nr=0x2c, dev 0xffffffe1d6299720, auth=1 +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, DRM_IOCTL_MODE_SETPLANE +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, DRM_IOCTL_GEM_CLOSE +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, DRM_IOCTL_DROP_MASTER +[drm:drm_ioctl] ret = 22 +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, DRM_IOCTL_GEM_CLOSE +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, DRM_IOCTL_GEM_CLOSE +[drm:drm_ioctl] pid=904, dev=0xffffffe1d6299720, auth=1, I915_GEM_WAIT --- sys/dev/drm/drm_ioctl.c | 18 ++++++++++++------ sys/dev/drm/include/drm/drmP.h | 11 +++++++++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/sys/dev/drm/drm_ioctl.c b/sys/dev/drm/drm_ioctl.c index 6f521f1fa7..4dc8295008 100644 --- a/sys/dev/drm/drm_ioctl.c +++ b/sys/dev/drm/drm_ioctl.c @@ -525,8 +525,14 @@ int drm_ioctl_permit(u32 flags, struct drm_file *file_priv) EXPORT_SYMBOL(drm_ioctl_permit); #endif -#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .cmd_drv = 0, .name = #ioctl} +#define DRM_IOCTL_DEF(ioctl, _func, _flags) \ + [DRM_IOCTL_NR(ioctl)] = { \ + .cmd = ioctl, \ + .func = _func, \ + .flags = _flags, \ + .cmd_drv = 0, \ + .name = #ioctl \ + } /** Ioctl table */ static const struct drm_ioctl_desc drm_ioctls[] = { @@ -699,14 +705,14 @@ int drm_ioctl(struct dev_ioctl_args *ap) is_driver_ioctl = 1; } - DRM_DEBUG_IOCTL("pid=%d, cmd=0x%02lx, nr=0x%02x, dev 0x%lx, auth=%d\n", - DRM_CURRENTPID, cmd, nr, (long)dev->dev, - file_priv->authenticated); + DRM_DEBUG_IOCTL("pid=%d, dev=0x%lx, auth=%d, %s\n", + DRM_CURRENTPID, (long)dev->dev, + file_priv->authenticated, ioctl->name); /* Do not trust userspace, use our own definition */ func = ioctl->func; - if (func == NULL) { + if (unlikely(func == NULL)) { DRM_DEBUG_FIOCTL("no function\n"); return EINVAL; } diff --git a/sys/dev/drm/include/drm/drmP.h b/sys/dev/drm/include/drm/drmP.h index 76d343e805..8252ad1b1f 100644 --- a/sys/dev/drm/include/drm/drmP.h +++ b/sys/dev/drm/include/drm/drmP.h @@ -405,8 +405,15 @@ struct drm_ioctl_desc { * Creates a driver or general drm_ioctl_desc array entry for the given * ioctl, for use by drm_ioctl(). */ -#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ - [DRM_IOCTL_NR(DRM_##ioctl)] = {.cmd = DRM_##ioctl, .func = _func, .flags = _flags, .cmd_drv = DRM_IOCTL_##ioctl} + +#define DRM_IOCTL_DEF_DRV(ioctl, _func, _flags) \ + [DRM_IOCTL_NR(DRM_##ioctl)] = { \ + .cmd = DRM_##ioctl, \ + .func = _func, \ + .flags = _flags, \ + .cmd_drv = DRM_IOCTL_##ioctl, \ + .name = #ioctl \ + } typedef struct drm_magic_entry { struct list_head head; -- 2.41.0