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 | } |
