diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2011-12-19 17:06:42 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-12-20 05:03:21 -0500 |
commit | 81f6c7f873a69346762c9cd6347b908ba7035532 (patch) | |
tree | 5133bfe1a320ea0046d24f4e9fc2fcf52fcf92e3 /drivers/gpu/drm/drm_crtc.c | |
parent | 10bf573bc10f50f316764418c704309b02cd1246 (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.c | 30 |
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; |