.. | .. |
---|
31 | 31 | #include <linux/ratelimit.h> |
---|
32 | 32 | #include <linux/export.h> |
---|
33 | 33 | |
---|
34 | | -#include <drm/drmP.h> |
---|
35 | | -#include "drm_legacy.h" |
---|
36 | | -#include "drm_internal.h" |
---|
| 34 | +#include <drm/drm_agpsupport.h> |
---|
| 35 | +#include <drm/drm_file.h> |
---|
| 36 | +#include <drm/drm_print.h> |
---|
| 37 | + |
---|
37 | 38 | #include "drm_crtc_internal.h" |
---|
| 39 | +#include "drm_internal.h" |
---|
| 40 | +#include "drm_legacy.h" |
---|
38 | 41 | |
---|
39 | 42 | #define DRM_IOCTL_VERSION32 DRM_IOWR(0x00, drm_version32_t) |
---|
40 | 43 | #define DRM_IOCTL_GET_UNIQUE32 DRM_IOWR(0x01, drm_unique32_t) |
---|
.. | .. |
---|
107 | 110 | .desc = compat_ptr(v32.desc), |
---|
108 | 111 | }; |
---|
109 | 112 | err = drm_ioctl_kernel(file, drm_version, &v, |
---|
110 | | - DRM_UNLOCKED|DRM_RENDER_ALLOW); |
---|
| 113 | + DRM_RENDER_ALLOW); |
---|
111 | 114 | if (err) |
---|
112 | 115 | return err; |
---|
113 | 116 | |
---|
.. | .. |
---|
144 | 147 | .unique = compat_ptr(uq32.unique), |
---|
145 | 148 | }; |
---|
146 | 149 | |
---|
147 | | - err = drm_ioctl_kernel(file, drm_getunique, &uq, DRM_UNLOCKED); |
---|
| 150 | + err = drm_ioctl_kernel(file, drm_getunique, &uq, 0); |
---|
148 | 151 | if (err) |
---|
149 | 152 | return err; |
---|
150 | 153 | |
---|
.. | .. |
---|
161 | 164 | return -EINVAL; |
---|
162 | 165 | } |
---|
163 | 166 | |
---|
| 167 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
164 | 168 | typedef struct drm_map32 { |
---|
165 | 169 | u32 offset; /* Requested physical address (0 for SAREA) */ |
---|
166 | 170 | u32 size; /* Requested physical size (bytes) */ |
---|
.. | .. |
---|
182 | 186 | return -EFAULT; |
---|
183 | 187 | |
---|
184 | 188 | map.offset = m32.offset; |
---|
185 | | - err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, DRM_UNLOCKED); |
---|
| 189 | + err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, 0); |
---|
186 | 190 | if (err) |
---|
187 | 191 | return err; |
---|
188 | 192 | |
---|
.. | .. |
---|
244 | 248 | map.handle = compat_ptr(handle); |
---|
245 | 249 | return drm_ioctl_kernel(file, drm_legacy_rmmap_ioctl, &map, DRM_AUTH); |
---|
246 | 250 | } |
---|
| 251 | +#endif |
---|
247 | 252 | |
---|
248 | 253 | typedef struct drm_client32 { |
---|
249 | 254 | int idx; /* Which client desired? */ |
---|
.. | .. |
---|
269 | 274 | |
---|
270 | 275 | client.idx = c32.idx; |
---|
271 | 276 | |
---|
272 | | - err = drm_ioctl_kernel(file, drm_getclient, &client, DRM_UNLOCKED); |
---|
| 277 | + err = drm_ioctl_kernel(file, drm_getclient, &client, 0); |
---|
273 | 278 | if (err) |
---|
274 | 279 | return err; |
---|
275 | 280 | |
---|
.. | .. |
---|
299 | 304 | drm_stats32_t __user *argp = (void __user *)arg; |
---|
300 | 305 | int err; |
---|
301 | 306 | |
---|
302 | | - err = drm_ioctl_kernel(file, drm_noop, NULL, DRM_UNLOCKED); |
---|
| 307 | + err = drm_ioctl_kernel(file, drm_noop, NULL, 0); |
---|
303 | 308 | if (err) |
---|
304 | 309 | return err; |
---|
305 | 310 | |
---|
.. | .. |
---|
308 | 313 | return 0; |
---|
309 | 314 | } |
---|
310 | 315 | |
---|
| 316 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
311 | 317 | typedef struct drm_buf_desc32 { |
---|
312 | 318 | int count; /* Number of buffers of this size */ |
---|
313 | 319 | int size; /* Size in bytes */ |
---|
.. | .. |
---|
389 | 395 | struct drm_file *file_priv) |
---|
390 | 396 | { |
---|
391 | 397 | drm_buf_info32_t *request = data; |
---|
| 398 | + |
---|
392 | 399 | return __drm_legacy_infobufs(dev, data, &request->count, copy_one_buf32); |
---|
393 | 400 | } |
---|
394 | 401 | |
---|
.. | .. |
---|
614 | 621 | |
---|
615 | 622 | return 0; |
---|
616 | 623 | } |
---|
| 624 | +#endif |
---|
617 | 625 | |
---|
618 | 626 | #if IS_ENABLED(CONFIG_AGP) |
---|
619 | 627 | typedef struct drm_agp_mode32 { |
---|
.. | .. |
---|
758 | 766 | } |
---|
759 | 767 | #endif /* CONFIG_AGP */ |
---|
760 | 768 | |
---|
| 769 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
761 | 770 | typedef struct drm_scatter_gather32 { |
---|
762 | 771 | u32 size; /**< In bytes -- will round to page boundary */ |
---|
763 | 772 | u32 handle; /**< Used for mapping / unmapping */ |
---|
.. | .. |
---|
798 | 807 | return drm_ioctl_kernel(file, drm_legacy_sg_free, &request, |
---|
799 | 808 | DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY); |
---|
800 | 809 | } |
---|
801 | | - |
---|
| 810 | +#endif |
---|
802 | 811 | #if defined(CONFIG_X86) |
---|
803 | 812 | typedef struct drm_update_draw32 { |
---|
804 | 813 | drm_drawable_t handle; |
---|
.. | .. |
---|
812 | 821 | unsigned long arg) |
---|
813 | 822 | { |
---|
814 | 823 | drm_update_draw32_t update32; |
---|
| 824 | + |
---|
815 | 825 | if (copy_from_user(&update32, (void __user *)arg, sizeof(update32))) |
---|
816 | 826 | return -EFAULT; |
---|
817 | 827 | |
---|
.. | .. |
---|
896 | 906 | sizeof(req64.modifier))) |
---|
897 | 907 | return -EFAULT; |
---|
898 | 908 | |
---|
899 | | - err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64, |
---|
900 | | - DRM_UNLOCKED); |
---|
| 909 | + err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64, 0); |
---|
901 | 910 | if (err) |
---|
902 | 911 | return err; |
---|
903 | 912 | |
---|
.. | .. |
---|
915 | 924 | #define DRM_IOCTL32_DEF(n, f) [DRM_IOCTL_NR(n##32)] = {.fn = f, .name = #n} |
---|
916 | 925 | DRM_IOCTL32_DEF(DRM_IOCTL_VERSION, compat_drm_version), |
---|
917 | 926 | DRM_IOCTL32_DEF(DRM_IOCTL_GET_UNIQUE, compat_drm_getunique), |
---|
| 927 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
918 | 928 | DRM_IOCTL32_DEF(DRM_IOCTL_GET_MAP, compat_drm_getmap), |
---|
| 929 | +#endif |
---|
919 | 930 | DRM_IOCTL32_DEF(DRM_IOCTL_GET_CLIENT, compat_drm_getclient), |
---|
920 | 931 | DRM_IOCTL32_DEF(DRM_IOCTL_GET_STATS, compat_drm_getstats), |
---|
921 | 932 | DRM_IOCTL32_DEF(DRM_IOCTL_SET_UNIQUE, compat_drm_setunique), |
---|
| 933 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
922 | 934 | DRM_IOCTL32_DEF(DRM_IOCTL_ADD_MAP, compat_drm_addmap), |
---|
923 | 935 | DRM_IOCTL32_DEF(DRM_IOCTL_ADD_BUFS, compat_drm_addbufs), |
---|
924 | 936 | DRM_IOCTL32_DEF(DRM_IOCTL_MARK_BUFS, compat_drm_markbufs), |
---|
.. | .. |
---|
930 | 942 | DRM_IOCTL32_DEF(DRM_IOCTL_GET_SAREA_CTX, compat_drm_getsareactx), |
---|
931 | 943 | DRM_IOCTL32_DEF(DRM_IOCTL_RES_CTX, compat_drm_resctx), |
---|
932 | 944 | DRM_IOCTL32_DEF(DRM_IOCTL_DMA, compat_drm_dma), |
---|
| 945 | +#endif |
---|
933 | 946 | #if IS_ENABLED(CONFIG_AGP) |
---|
934 | 947 | DRM_IOCTL32_DEF(DRM_IOCTL_AGP_ENABLE, compat_drm_agp_enable), |
---|
935 | 948 | DRM_IOCTL32_DEF(DRM_IOCTL_AGP_INFO, compat_drm_agp_info), |
---|
.. | .. |
---|
938 | 951 | DRM_IOCTL32_DEF(DRM_IOCTL_AGP_BIND, compat_drm_agp_bind), |
---|
939 | 952 | DRM_IOCTL32_DEF(DRM_IOCTL_AGP_UNBIND, compat_drm_agp_unbind), |
---|
940 | 953 | #endif |
---|
| 954 | +#if IS_ENABLED(CONFIG_DRM_LEGACY) |
---|
941 | 955 | DRM_IOCTL32_DEF(DRM_IOCTL_SG_ALLOC, compat_drm_sg_alloc), |
---|
942 | 956 | DRM_IOCTL32_DEF(DRM_IOCTL_SG_FREE, compat_drm_sg_free), |
---|
| 957 | +#endif |
---|
943 | 958 | #if defined(CONFIG_X86) || defined(CONFIG_IA64) |
---|
944 | 959 | DRM_IOCTL32_DEF(DRM_IOCTL_UPDATE_DRAW, compat_drm_update_draw), |
---|
945 | 960 | #endif |
---|
.. | .. |
---|
981 | 996 | if (!fn) |
---|
982 | 997 | return drm_ioctl(filp, cmd, arg); |
---|
983 | 998 | |
---|
984 | | - DRM_DEBUG("pid=%d, dev=0x%lx, auth=%d, %s\n", |
---|
985 | | - task_pid_nr(current), |
---|
| 999 | + DRM_DEBUG("comm=\"%s\", pid=%d, dev=0x%lx, auth=%d, %s\n", |
---|
| 1000 | + current->comm, task_pid_nr(current), |
---|
986 | 1001 | (long)old_encode_dev(file_priv->minor->kdev->devt), |
---|
987 | 1002 | file_priv->authenticated, |
---|
988 | 1003 | drm_compat_ioctls[nr].name); |
---|