On Fri, Feb 23, 2018 at 09:25:03PM +0200, Ville Syrjala wrote:
From: Ville Syrjälä ville.syrjala@linux.intel.com
While we want to potentially support multiple different gamma/degamma LUT sizes we can (and should) at least check that the blob length is a multiple of the LUT entry size.
Signed-off-by: Ville Syrjälä ville.syrjala@linux.intel.com
drivers/gpu/drm/drm_atomic.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 8945357212ba..933edec0299d 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -413,6 +413,7 @@ drm_atomic_replace_property_blob_from_id(struct drm_device *dev, struct drm_property_blob **blob, uint64_t blob_id, ssize_t expected_size,
ssize_t expected_size_mod,
Needs kerneldoc, and I'm not sure it's the most descriptive name. Maybe expected_array_element_size?
With or without the bikeshed, but with the kerneldoc fixed:
Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
Up to this patch in the series. -Daniel
bool *replaced)
{ struct drm_property_blob *new_blob = NULL; @@ -422,7 +423,13 @@ drm_atomic_replace_property_blob_from_id(struct drm_device *dev, if (new_blob == NULL) return -EINVAL;
if (expected_size > 0 && expected_size != new_blob->length) {
if (expected_size > 0 &&
new_blob->length != expected_size) {
drm_property_blob_put(new_blob);
return -EINVAL;
}
if (expected_size_mod > 0 &&
}new_blob->length % expected_size_mod != 0) { drm_property_blob_put(new_blob); return -EINVAL;
@@ -470,7 +477,7 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc, ret = drm_atomic_replace_property_blob_from_id(dev, &state->degamma_lut, val,
-1,
state->color_mgmt_changed |= replaced; return ret;-1, sizeof(struct drm_color_lut), &replaced);
@@ -478,7 +485,7 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc, ret = drm_atomic_replace_property_blob_from_id(dev, &state->ctm, val,
sizeof(struct drm_color_ctm),
state->color_mgmt_changed |= replaced; return ret;sizeof(struct drm_color_ctm), -1, &replaced);
@@ -486,7 +493,7 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc, ret = drm_atomic_replace_property_blob_from_id(dev, &state->gamma_lut, val,
-1,
state->color_mgmt_changed |= replaced; return ret;-1, sizeof(struct drm_color_lut), &replaced);
-- 2.13.6
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx