aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_crtc.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2011-12-19 17:06:42 -0500
committerDave Airlie <airlied@redhat.com>2011-12-20 05:03:21 -0500
commit81f6c7f873a69346762c9cd6347b908ba7035532 (patch)
tree5133bfe1a320ea0046d24f4e9fc2fcf52fcf92e3 /drivers/gpu/drm/drm_crtc.c
parent10bf573bc10f50f316764418c704309b02cd1246 (diff)
drm: Fix __user sparse warnings
Several pointers and casts were missing __user annotations. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r--drivers/gpu/drm/drm_crtc.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 7cb02f63b8e..e05d9979154 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1441,7 +1441,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
1441 */ 1441 */
1442 if ((out_resp->count_modes >= mode_count) && mode_count) { 1442 if ((out_resp->count_modes >= mode_count) && mode_count) {
1443 copied = 0; 1443 copied = 0;
1444 mode_ptr = (struct drm_mode_modeinfo *)(unsigned long)out_resp->modes_ptr; 1444 mode_ptr = (struct drm_mode_modeinfo __user *)(unsigned long)out_resp->modes_ptr;
1445 list_for_each_entry(mode, &connector->modes, head) { 1445 list_for_each_entry(mode, &connector->modes, head) {
1446 drm_crtc_convert_to_umode(&u_mode, mode); 1446 drm_crtc_convert_to_umode(&u_mode, mode);
1447 if (copy_to_user(mode_ptr + copied, 1447 if (copy_to_user(mode_ptr + copied,
@@ -1456,8 +1456,8 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
1456 1456
1457 if ((out_resp->count_props >= props_count) && props_count) { 1457 if ((out_resp->count_props >= props_count) && props_count) {
1458 copied = 0; 1458 copied = 0;
1459 prop_ptr = (uint32_t *)(unsigned long)(out_resp->props_ptr); 1459 prop_ptr = (uint32_t __user *)(unsigned long)(out_resp->props_ptr);
1460 prop_values = (uint64_t *)(unsigned long)(out_resp->prop_values_ptr); 1460 prop_values = (uint64_t __user *)(unsigned long)(out_resp->prop_values_ptr);
1461 for (i = 0; i < DRM_CONNECTOR_MAX_PROPERTY; i++) { 1461 for (i = 0; i < DRM_CONNECTOR_MAX_PROPERTY; i++) {
1462 if (connector->property_ids[i] != 0) { 1462 if (connector->property_ids[i] != 0) {
1463 if (put_user(connector->property_ids[i], 1463 if (put_user(connector->property_ids[i],
@@ -1479,7 +1479,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
1479 1479
1480 if ((out_resp->count_encoders >= encoders_count) && encoders_count) { 1480 if ((out_resp->count_encoders >= encoders_count) && encoders_count) {
1481 copied = 0; 1481 copied = 0;
1482 encoder_ptr = (uint32_t *)(unsigned long)(out_resp->encoders_ptr); 1482 encoder_ptr = (uint32_t __user *)(unsigned long)(out_resp->encoders_ptr);
1483 for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { 1483 for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
1484 if (connector->encoder_ids[i] != 0) { 1484 if (connector->encoder_ids[i] != 0) {
1485 if (put_user(connector->encoder_ids[i], 1485 if (put_user(connector->encoder_ids[i],
@@ -1561,7 +1561,7 @@ int drm_mode_getplane_res(struct drm_device *dev, void *data,
1561 */ 1561 */
1562 if (config->num_plane && 1562 if (config->num_plane &&
1563 (plane_resp->count_planes >= config->num_plane)) { 1563 (plane_resp->count_planes >= config->num_plane)) {
1564 plane_ptr = (uint32_t *)(unsigned long)plane_resp->plane_id_ptr; 1564 plane_ptr = (uint32_t __user *)(unsigned long)plane_resp->plane_id_ptr;
1565 1565
1566 list_for_each_entry(plane, &config->plane_list, head) { 1566 list_for_each_entry(plane, &config->plane_list, head) {
1567 if (put_user(plane->base.id, plane_ptr + copied)) { 1567 if (put_user(plane->base.id, plane_ptr + copied)) {
@@ -1628,7 +1628,7 @@ int drm_mode_getplane(struct drm_device *dev, void *data,
1628 */ 1628 */
1629 if (plane->format_count && 1629 if (plane->format_count &&
1630 (plane_resp->count_format_types >= plane->format_count)) { 1630 (plane_resp->count_format_types >= plane->format_count)) {
1631 format_ptr = (uint32_t *)(unsigned long)plane_resp->format_type_ptr; 1631 format_ptr = (uint32_t __user *)(unsigned long)plane_resp->format_type_ptr;
1632 if (copy_to_user(format_ptr, 1632 if (copy_to_user(format_ptr,
1633 plane->format_types, 1633 plane->format_types,
1634 sizeof(uint32_t) * plane->format_count)) { 1634 sizeof(uint32_t) * plane->format_count)) {
@@ -1829,7 +1829,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
1829 } 1829 }
1830 1830
1831 for (i = 0; i < crtc_req->count_connectors; i++) { 1831 for (i = 0; i < crtc_req->count_connectors; i++) {
1832 set_connectors_ptr = (uint32_t *)(unsigned long)crtc_req->set_connectors_ptr; 1832 set_connectors_ptr = (uint32_t __user *)(unsigned long)crtc_req->set_connectors_ptr;
1833 if (get_user(out_id, &set_connectors_ptr[i])) { 1833 if (get_user(out_id, &set_connectors_ptr[i])) {
1834 ret = -EFAULT; 1834 ret = -EFAULT;
1835 goto out; 1835 goto out;
@@ -2201,7 +2201,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
2201 fb = obj_to_fb(obj); 2201 fb = obj_to_fb(obj);
2202 2202
2203 num_clips = r->num_clips; 2203 num_clips = r->num_clips;
2204 clips_ptr = (struct drm_clip_rect *)(unsigned long)r->clips_ptr; 2204 clips_ptr = (struct drm_clip_rect __user *)(unsigned long)r->clips_ptr;
2205 2205
2206 if (!num_clips != !clips_ptr) { 2206 if (!num_clips != !clips_ptr) {
2207 ret = -EINVAL; 2207 ret = -EINVAL;
@@ -2591,7 +2591,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
2591 struct drm_property_enum *prop_enum; 2591 struct drm_property_enum *prop_enum;
2592 struct drm_mode_property_enum __user *enum_ptr; 2592 struct drm_mode_property_enum __user *enum_ptr;
2593 struct drm_property_blob *prop_blob; 2593 struct drm_property_blob *prop_blob;
2594 uint32_t *blob_id_ptr; 2594 uint32_t __user *blob_id_ptr;
2595 uint64_t __user *values_ptr; 2595 uint64_t __user *values_ptr;
2596 uint32_t __user *blob_length_ptr; 2596 uint32_t __user *blob_length_ptr;
2597 2597
@@ -2621,7 +2621,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
2621 out_resp->flags = property->flags; 2621 out_resp->flags = property->flags;
2622 2622
2623 if ((out_resp->count_values >= value_count) && value_count) { 2623 if ((out_resp->count_values >= value_count) && value_count) {
2624 values_ptr = (uint64_t *)(unsigned long)out_resp->values_ptr; 2624 values_ptr = (uint64_t __user *)(unsigned long)out_resp->values_ptr;
2625 for (i = 0; i < value_count; i++) { 2625 for (i = 0; i < value_count; i++) {
2626 if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) { 2626 if (copy_to_user(values_ptr + i, &property->values[i], sizeof(uint64_t))) {
2627 ret = -EFAULT; 2627 ret = -EFAULT;
@@ -2634,7 +2634,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
2634 if (property->flags & DRM_MODE_PROP_ENUM) { 2634 if (property->flags & DRM_MODE_PROP_ENUM) {
2635 if ((out_resp->count_enum_blobs >= enum_count) && enum_count) { 2635 if ((out_resp->count_enum_blobs >= enum_count) && enum_count) {
2636 copied = 0; 2636 copied = 0;
2637 enum_ptr = (struct drm_mode_property_enum *)(unsigned long)out_resp->enum_blob_ptr; 2637 enum_ptr = (struct drm_mode_property_enum __user *)(unsigned long)out_resp->enum_blob_ptr;
2638 list_for_each_entry(prop_enum, &property->enum_blob_list, head) { 2638 list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
2639 2639
2640 if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) { 2640 if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) {
@@ -2656,8 +2656,8 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
2656 if (property->flags & DRM_MODE_PROP_BLOB) { 2656 if (property->flags & DRM_MODE_PROP_BLOB) {
2657 if ((out_resp->count_enum_blobs >= blob_count) && blob_count) { 2657 if ((out_resp->count_enum_blobs >= blob_count) && blob_count) {
2658 copied = 0; 2658 copied = 0;
2659 blob_id_ptr = (uint32_t *)(unsigned long)out_resp->enum_blob_ptr; 2659 blob_id_ptr = (uint32_t __user *)(unsigned long)out_resp->enum_blob_ptr;
2660 blob_length_ptr = (uint32_t *)(unsigned long)out_resp->values_ptr; 2660 blob_length_ptr = (uint32_t __user *)(unsigned long)out_resp->values_ptr;
2661 2661
2662 list_for_each_entry(prop_blob, &property->enum_blob_list, head) { 2662 list_for_each_entry(prop_blob, &property->enum_blob_list, head) {
2663 if (put_user(prop_blob->base.id, blob_id_ptr + copied)) { 2663 if (put_user(prop_blob->base.id, blob_id_ptr + copied)) {
@@ -2718,7 +2718,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
2718 struct drm_mode_get_blob *out_resp = data; 2718 struct drm_mode_get_blob *out_resp = data;
2719 struct drm_property_blob *blob; 2719 struct drm_property_blob *blob;
2720 int ret = 0; 2720 int ret = 0;
2721 void *blob_ptr; 2721 void __user *blob_ptr;
2722 2722
2723 if (!drm_core_check_feature(dev, DRIVER_MODESET)) 2723 if (!drm_core_check_feature(dev, DRIVER_MODESET))
2724 return -EINVAL; 2724 return -EINVAL;
@@ -2732,7 +2732,7 @@ int drm_mode_getblob_ioctl(struct drm_device *dev,
2732 blob = obj_to_blob(obj); 2732 blob = obj_to_blob(obj);
2733 2733
2734 if (out_resp->length == blob->length) { 2734 if (out_resp->length == blob->length) {
2735 blob_ptr = (void *)(unsigned long)out_resp->data; 2735 blob_ptr = (void __user *)(unsigned long)out_resp->data;
2736 if (copy_to_user(blob_ptr, blob->data, blob->length)){ 2736 if (copy_to_user(blob_ptr, blob->data, blob->length)){
2737 ret = -EFAULT; 2737 ret = -EFAULT;
2738 goto done; 2738 goto done;