diff options
Diffstat (limited to 'drivers/gpu/drm/drm_ioc32.c')
-rw-r--r-- | drivers/gpu/drm/drm_ioc32.c | 89 |
1 files changed, 30 insertions, 59 deletions
diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c index 282d9fdf9f4e..d61d185cf040 100644 --- a/drivers/gpu/drm/drm_ioc32.c +++ b/drivers/gpu/drm/drm_ioc32.c | |||
@@ -104,7 +104,7 @@ static int compat_drm_version(struct file *file, unsigned int cmd, | |||
104 | &version->desc)) | 104 | &version->desc)) |
105 | return -EFAULT; | 105 | return -EFAULT; |
106 | 106 | ||
107 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 107 | err = drm_ioctl(file, |
108 | DRM_IOCTL_VERSION, (unsigned long)version); | 108 | DRM_IOCTL_VERSION, (unsigned long)version); |
109 | if (err) | 109 | if (err) |
110 | return err; | 110 | return err; |
@@ -145,8 +145,7 @@ static int compat_drm_getunique(struct file *file, unsigned int cmd, | |||
145 | &u->unique)) | 145 | &u->unique)) |
146 | return -EFAULT; | 146 | return -EFAULT; |
147 | 147 | ||
148 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 148 | err = drm_ioctl(file, DRM_IOCTL_GET_UNIQUE, (unsigned long)u); |
149 | DRM_IOCTL_GET_UNIQUE, (unsigned long)u); | ||
150 | if (err) | 149 | if (err) |
151 | return err; | 150 | return err; |
152 | 151 | ||
@@ -174,8 +173,7 @@ static int compat_drm_setunique(struct file *file, unsigned int cmd, | |||
174 | &u->unique)) | 173 | &u->unique)) |
175 | return -EFAULT; | 174 | return -EFAULT; |
176 | 175 | ||
177 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 176 | return drm_ioctl(file, DRM_IOCTL_SET_UNIQUE, (unsigned long)u); |
178 | DRM_IOCTL_SET_UNIQUE, (unsigned long)u); | ||
179 | } | 177 | } |
180 | 178 | ||
181 | typedef struct drm_map32 { | 179 | typedef struct drm_map32 { |
@@ -205,8 +203,7 @@ static int compat_drm_getmap(struct file *file, unsigned int cmd, | |||
205 | if (__put_user(idx, &map->offset)) | 203 | if (__put_user(idx, &map->offset)) |
206 | return -EFAULT; | 204 | return -EFAULT; |
207 | 205 | ||
208 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 206 | err = drm_ioctl(file, DRM_IOCTL_GET_MAP, (unsigned long)map); |
209 | DRM_IOCTL_GET_MAP, (unsigned long)map); | ||
210 | if (err) | 207 | if (err) |
211 | return err; | 208 | return err; |
212 | 209 | ||
@@ -246,8 +243,7 @@ static int compat_drm_addmap(struct file *file, unsigned int cmd, | |||
246 | || __put_user(m32.flags, &map->flags)) | 243 | || __put_user(m32.flags, &map->flags)) |
247 | return -EFAULT; | 244 | return -EFAULT; |
248 | 245 | ||
249 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 246 | err = drm_ioctl(file, DRM_IOCTL_ADD_MAP, (unsigned long)map); |
250 | DRM_IOCTL_ADD_MAP, (unsigned long)map); | ||
251 | if (err) | 247 | if (err) |
252 | return err; | 248 | return err; |
253 | 249 | ||
@@ -284,8 +280,7 @@ static int compat_drm_rmmap(struct file *file, unsigned int cmd, | |||
284 | if (__put_user((void *)(unsigned long)handle, &map->handle)) | 280 | if (__put_user((void *)(unsigned long)handle, &map->handle)) |
285 | return -EFAULT; | 281 | return -EFAULT; |
286 | 282 | ||
287 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 283 | return drm_ioctl(file, DRM_IOCTL_RM_MAP, (unsigned long)map); |
288 | DRM_IOCTL_RM_MAP, (unsigned long)map); | ||
289 | } | 284 | } |
290 | 285 | ||
291 | typedef struct drm_client32 { | 286 | typedef struct drm_client32 { |
@@ -314,8 +309,7 @@ static int compat_drm_getclient(struct file *file, unsigned int cmd, | |||
314 | if (__put_user(idx, &client->idx)) | 309 | if (__put_user(idx, &client->idx)) |
315 | return -EFAULT; | 310 | return -EFAULT; |
316 | 311 | ||
317 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 312 | err = drm_ioctl(file, DRM_IOCTL_GET_CLIENT, (unsigned long)client); |
318 | DRM_IOCTL_GET_CLIENT, (unsigned long)client); | ||
319 | if (err) | 313 | if (err) |
320 | return err; | 314 | return err; |
321 | 315 | ||
@@ -351,8 +345,7 @@ static int compat_drm_getstats(struct file *file, unsigned int cmd, | |||
351 | if (!access_ok(VERIFY_WRITE, stats, sizeof(*stats))) | 345 | if (!access_ok(VERIFY_WRITE, stats, sizeof(*stats))) |
352 | return -EFAULT; | 346 | return -EFAULT; |
353 | 347 | ||
354 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 348 | err = drm_ioctl(file, DRM_IOCTL_GET_STATS, (unsigned long)stats); |
355 | DRM_IOCTL_GET_STATS, (unsigned long)stats); | ||
356 | if (err) | 349 | if (err) |
357 | return err; | 350 | return err; |
358 | 351 | ||
@@ -395,8 +388,7 @@ static int compat_drm_addbufs(struct file *file, unsigned int cmd, | |||
395 | || __put_user(agp_start, &buf->agp_start)) | 388 | || __put_user(agp_start, &buf->agp_start)) |
396 | return -EFAULT; | 389 | return -EFAULT; |
397 | 390 | ||
398 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 391 | err = drm_ioctl(file, DRM_IOCTL_ADD_BUFS, (unsigned long)buf); |
399 | DRM_IOCTL_ADD_BUFS, (unsigned long)buf); | ||
400 | if (err) | 392 | if (err) |
401 | return err; | 393 | return err; |
402 | 394 | ||
@@ -427,8 +419,7 @@ static int compat_drm_markbufs(struct file *file, unsigned int cmd, | |||
427 | || __put_user(b32.high_mark, &buf->high_mark)) | 419 | || __put_user(b32.high_mark, &buf->high_mark)) |
428 | return -EFAULT; | 420 | return -EFAULT; |
429 | 421 | ||
430 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 422 | return drm_ioctl(file, DRM_IOCTL_MARK_BUFS, (unsigned long)buf); |
431 | DRM_IOCTL_MARK_BUFS, (unsigned long)buf); | ||
432 | } | 423 | } |
433 | 424 | ||
434 | typedef struct drm_buf_info32 { | 425 | typedef struct drm_buf_info32 { |
@@ -469,8 +460,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd, | |||
469 | || __put_user(list, &request->list)) | 460 | || __put_user(list, &request->list)) |
470 | return -EFAULT; | 461 | return -EFAULT; |
471 | 462 | ||
472 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 463 | err = drm_ioctl(file, DRM_IOCTL_INFO_BUFS, (unsigned long)request); |
473 | DRM_IOCTL_INFO_BUFS, (unsigned long)request); | ||
474 | if (err) | 464 | if (err) |
475 | return err; | 465 | return err; |
476 | 466 | ||
@@ -531,8 +521,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd, | |||
531 | || __put_user(list, &request->list)) | 521 | || __put_user(list, &request->list)) |
532 | return -EFAULT; | 522 | return -EFAULT; |
533 | 523 | ||
534 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 524 | err = drm_ioctl(file, DRM_IOCTL_MAP_BUFS, (unsigned long)request); |
535 | DRM_IOCTL_MAP_BUFS, (unsigned long)request); | ||
536 | if (err) | 525 | if (err) |
537 | return err; | 526 | return err; |
538 | 527 | ||
@@ -578,8 +567,7 @@ static int compat_drm_freebufs(struct file *file, unsigned int cmd, | |||
578 | &request->list)) | 567 | &request->list)) |
579 | return -EFAULT; | 568 | return -EFAULT; |
580 | 569 | ||
581 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 570 | return drm_ioctl(file, DRM_IOCTL_FREE_BUFS, (unsigned long)request); |
582 | DRM_IOCTL_FREE_BUFS, (unsigned long)request); | ||
583 | } | 571 | } |
584 | 572 | ||
585 | typedef struct drm_ctx_priv_map32 { | 573 | typedef struct drm_ctx_priv_map32 { |
@@ -605,8 +593,7 @@ static int compat_drm_setsareactx(struct file *file, unsigned int cmd, | |||
605 | &request->handle)) | 593 | &request->handle)) |
606 | return -EFAULT; | 594 | return -EFAULT; |
607 | 595 | ||
608 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 596 | return drm_ioctl(file, DRM_IOCTL_SET_SAREA_CTX, (unsigned long)request); |
609 | DRM_IOCTL_SET_SAREA_CTX, (unsigned long)request); | ||
610 | } | 597 | } |
611 | 598 | ||
612 | static int compat_drm_getsareactx(struct file *file, unsigned int cmd, | 599 | static int compat_drm_getsareactx(struct file *file, unsigned int cmd, |
@@ -628,8 +615,7 @@ static int compat_drm_getsareactx(struct file *file, unsigned int cmd, | |||
628 | if (__put_user(ctx_id, &request->ctx_id)) | 615 | if (__put_user(ctx_id, &request->ctx_id)) |
629 | return -EFAULT; | 616 | return -EFAULT; |
630 | 617 | ||
631 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 618 | err = drm_ioctl(file, DRM_IOCTL_GET_SAREA_CTX, (unsigned long)request); |
632 | DRM_IOCTL_GET_SAREA_CTX, (unsigned long)request); | ||
633 | if (err) | 619 | if (err) |
634 | return err; | 620 | return err; |
635 | 621 | ||
@@ -664,8 +650,7 @@ static int compat_drm_resctx(struct file *file, unsigned int cmd, | |||
664 | &res->contexts)) | 650 | &res->contexts)) |
665 | return -EFAULT; | 651 | return -EFAULT; |
666 | 652 | ||
667 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 653 | err = drm_ioctl(file, DRM_IOCTL_RES_CTX, (unsigned long)res); |
668 | DRM_IOCTL_RES_CTX, (unsigned long)res); | ||
669 | if (err) | 654 | if (err) |
670 | return err; | 655 | return err; |
671 | 656 | ||
@@ -718,8 +703,7 @@ static int compat_drm_dma(struct file *file, unsigned int cmd, | |||
718 | &d->request_sizes)) | 703 | &d->request_sizes)) |
719 | return -EFAULT; | 704 | return -EFAULT; |
720 | 705 | ||
721 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 706 | err = drm_ioctl(file, DRM_IOCTL_DMA, (unsigned long)d); |
722 | DRM_IOCTL_DMA, (unsigned long)d); | ||
723 | if (err) | 707 | if (err) |
724 | return err; | 708 | return err; |
725 | 709 | ||
@@ -751,8 +735,7 @@ static int compat_drm_agp_enable(struct file *file, unsigned int cmd, | |||
751 | if (put_user(m32.mode, &mode->mode)) | 735 | if (put_user(m32.mode, &mode->mode)) |
752 | return -EFAULT; | 736 | return -EFAULT; |
753 | 737 | ||
754 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 738 | return drm_ioctl(file, DRM_IOCTL_AGP_ENABLE, (unsigned long)mode); |
755 | DRM_IOCTL_AGP_ENABLE, (unsigned long)mode); | ||
756 | } | 739 | } |
757 | 740 | ||
758 | typedef struct drm_agp_info32 { | 741 | typedef struct drm_agp_info32 { |
@@ -781,8 +764,7 @@ static int compat_drm_agp_info(struct file *file, unsigned int cmd, | |||
781 | if (!access_ok(VERIFY_WRITE, info, sizeof(*info))) | 764 | if (!access_ok(VERIFY_WRITE, info, sizeof(*info))) |
782 | return -EFAULT; | 765 | return -EFAULT; |
783 | 766 | ||
784 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 767 | err = drm_ioctl(file, DRM_IOCTL_AGP_INFO, (unsigned long)info); |
785 | DRM_IOCTL_AGP_INFO, (unsigned long)info); | ||
786 | if (err) | 768 | if (err) |
787 | return err; | 769 | return err; |
788 | 770 | ||
@@ -827,16 +809,14 @@ static int compat_drm_agp_alloc(struct file *file, unsigned int cmd, | |||
827 | || __put_user(req32.type, &request->type)) | 809 | || __put_user(req32.type, &request->type)) |
828 | return -EFAULT; | 810 | return -EFAULT; |
829 | 811 | ||
830 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 812 | err = drm_ioctl(file, DRM_IOCTL_AGP_ALLOC, (unsigned long)request); |
831 | DRM_IOCTL_AGP_ALLOC, (unsigned long)request); | ||
832 | if (err) | 813 | if (err) |
833 | return err; | 814 | return err; |
834 | 815 | ||
835 | if (__get_user(req32.handle, &request->handle) | 816 | if (__get_user(req32.handle, &request->handle) |
836 | || __get_user(req32.physical, &request->physical) | 817 | || __get_user(req32.physical, &request->physical) |
837 | || copy_to_user(argp, &req32, sizeof(req32))) { | 818 | || copy_to_user(argp, &req32, sizeof(req32))) { |
838 | drm_ioctl(file->f_path.dentry->d_inode, file, | 819 | drm_ioctl(file, DRM_IOCTL_AGP_FREE, (unsigned long)request); |
839 | DRM_IOCTL_AGP_FREE, (unsigned long)request); | ||
840 | return -EFAULT; | 820 | return -EFAULT; |
841 | } | 821 | } |
842 | 822 | ||
@@ -856,8 +836,7 @@ static int compat_drm_agp_free(struct file *file, unsigned int cmd, | |||
856 | || __put_user(handle, &request->handle)) | 836 | || __put_user(handle, &request->handle)) |
857 | return -EFAULT; | 837 | return -EFAULT; |
858 | 838 | ||
859 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 839 | return drm_ioctl(file, DRM_IOCTL_AGP_FREE, (unsigned long)request); |
860 | DRM_IOCTL_AGP_FREE, (unsigned long)request); | ||
861 | } | 840 | } |
862 | 841 | ||
863 | typedef struct drm_agp_binding32 { | 842 | typedef struct drm_agp_binding32 { |
@@ -881,8 +860,7 @@ static int compat_drm_agp_bind(struct file *file, unsigned int cmd, | |||
881 | || __put_user(req32.offset, &request->offset)) | 860 | || __put_user(req32.offset, &request->offset)) |
882 | return -EFAULT; | 861 | return -EFAULT; |
883 | 862 | ||
884 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 863 | return drm_ioctl(file, DRM_IOCTL_AGP_BIND, (unsigned long)request); |
885 | DRM_IOCTL_AGP_BIND, (unsigned long)request); | ||
886 | } | 864 | } |
887 | 865 | ||
888 | static int compat_drm_agp_unbind(struct file *file, unsigned int cmd, | 866 | static int compat_drm_agp_unbind(struct file *file, unsigned int cmd, |
@@ -898,8 +876,7 @@ static int compat_drm_agp_unbind(struct file *file, unsigned int cmd, | |||
898 | || __put_user(handle, &request->handle)) | 876 | || __put_user(handle, &request->handle)) |
899 | return -EFAULT; | 877 | return -EFAULT; |
900 | 878 | ||
901 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 879 | return drm_ioctl(file, DRM_IOCTL_AGP_UNBIND, (unsigned long)request); |
902 | DRM_IOCTL_AGP_UNBIND, (unsigned long)request); | ||
903 | } | 880 | } |
904 | #endif /* __OS_HAS_AGP */ | 881 | #endif /* __OS_HAS_AGP */ |
905 | 882 | ||
@@ -923,8 +900,7 @@ static int compat_drm_sg_alloc(struct file *file, unsigned int cmd, | |||
923 | || __put_user(x, &request->size)) | 900 | || __put_user(x, &request->size)) |
924 | return -EFAULT; | 901 | return -EFAULT; |
925 | 902 | ||
926 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 903 | err = drm_ioctl(file, DRM_IOCTL_SG_ALLOC, (unsigned long)request); |
927 | DRM_IOCTL_SG_ALLOC, (unsigned long)request); | ||
928 | if (err) | 904 | if (err) |
929 | return err; | 905 | return err; |
930 | 906 | ||
@@ -950,8 +926,7 @@ static int compat_drm_sg_free(struct file *file, unsigned int cmd, | |||
950 | || __put_user(x << PAGE_SHIFT, &request->handle)) | 926 | || __put_user(x << PAGE_SHIFT, &request->handle)) |
951 | return -EFAULT; | 927 | return -EFAULT; |
952 | 928 | ||
953 | return drm_ioctl(file->f_path.dentry->d_inode, file, | 929 | return drm_ioctl(file, DRM_IOCTL_SG_FREE, (unsigned long)request); |
954 | DRM_IOCTL_SG_FREE, (unsigned long)request); | ||
955 | } | 930 | } |
956 | 931 | ||
957 | #if defined(CONFIG_X86) || defined(CONFIG_IA64) | 932 | #if defined(CONFIG_X86) || defined(CONFIG_IA64) |
@@ -981,8 +956,7 @@ static int compat_drm_update_draw(struct file *file, unsigned int cmd, | |||
981 | __put_user(update32.data, &request->data)) | 956 | __put_user(update32.data, &request->data)) |
982 | return -EFAULT; | 957 | return -EFAULT; |
983 | 958 | ||
984 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 959 | err = drm_ioctl(file, DRM_IOCTL_UPDATE_DRAW, (unsigned long)request); |
985 | DRM_IOCTL_UPDATE_DRAW, (unsigned long)request); | ||
986 | return err; | 960 | return err; |
987 | } | 961 | } |
988 | #endif | 962 | #endif |
@@ -1023,8 +997,7 @@ static int compat_drm_wait_vblank(struct file *file, unsigned int cmd, | |||
1023 | || __put_user(req32.request.signal, &request->request.signal)) | 997 | || __put_user(req32.request.signal, &request->request.signal)) |
1024 | return -EFAULT; | 998 | return -EFAULT; |
1025 | 999 | ||
1026 | err = drm_ioctl(file->f_path.dentry->d_inode, file, | 1000 | err = drm_ioctl(file, DRM_IOCTL_WAIT_VBLANK, (unsigned long)request); |
1027 | DRM_IOCTL_WAIT_VBLANK, (unsigned long)request); | ||
1028 | if (err) | 1001 | if (err) |
1029 | return err; | 1002 | return err; |
1030 | 1003 | ||
@@ -1094,16 +1067,14 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
1094 | * than always failing. | 1067 | * than always failing. |
1095 | */ | 1068 | */ |
1096 | if (nr >= ARRAY_SIZE(drm_compat_ioctls)) | 1069 | if (nr >= ARRAY_SIZE(drm_compat_ioctls)) |
1097 | return drm_ioctl(filp->f_dentry->d_inode, filp, cmd, arg); | 1070 | return drm_ioctl(filp, cmd, arg); |
1098 | 1071 | ||
1099 | fn = drm_compat_ioctls[nr]; | 1072 | fn = drm_compat_ioctls[nr]; |
1100 | 1073 | ||
1101 | lock_kernel(); /* XXX for now */ | ||
1102 | if (fn != NULL) | 1074 | if (fn != NULL) |
1103 | ret = (*fn) (filp, cmd, arg); | 1075 | ret = (*fn) (filp, cmd, arg); |
1104 | else | 1076 | else |
1105 | ret = drm_ioctl(filp->f_path.dentry->d_inode, filp, cmd, arg); | 1077 | ret = drm_ioctl(filp, cmd, arg); |
1106 | unlock_kernel(); | ||
1107 | 1078 | ||
1108 | return ret; | 1079 | return ret; |
1109 | } | 1080 | } |