* [radeon-alex:amd-staging-drm-next-pco 272/339] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:5137 dm_determine_update_type_for_commit() error: potential null dereference 'surface'. (kzalloc returns null)
@ 2018-09-14 6:36 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2018-09-14 6:36 UTC (permalink / raw)
To: Bhawanpreet Lakha; +Cc: kbuild-all, dri-devel
tree: git://people.freedesktop.org/~agd5f/linux.git amd-staging-drm-next-pco
head: bbab57a341c90ed6e32de8edf4e89dc5c55cddac
commit: 42b0cb5d6f8d3c641098454aabfa4eeeb935ccd2 [272/339] drm/amd/display: Build stream update and plane updates in dm
smatch warnings:
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:5137 dm_determine_update_type_for_commit() error: potential null dereference 'surface'. (kzalloc returns null)
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:5137 dm_determine_update_type_for_commit() error: potential null dereference 'updates'. (kzalloc returns null)
vim +/surface +5137 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c
5098
5099
5100 int i, j, num_plane;
5101 struct drm_plane_state *old_plane_state, *new_plane_state;
5102 struct dm_plane_state *new_dm_plane_state, *old_dm_plane_state;
5103 struct drm_crtc *new_plane_crtc, *old_plane_crtc;
5104 struct drm_plane *plane;
5105
5106 struct drm_crtc *crtc;
5107 struct drm_crtc_state *new_crtc_state, *old_crtc_state;
5108 struct dm_crtc_state *new_dm_crtc_state, *old_dm_crtc_state;
5109 struct dc_stream_status *status = NULL;
5110
5111 struct dc_surface_update *updates = kzalloc(MAX_SURFACES * sizeof(struct dc_surface_update), GFP_KERNEL);
5112 struct dc_plane_state *surface = kzalloc(MAX_SURFACES * sizeof(struct dc_plane_state), GFP_KERNEL);
5113 struct dc_stream_update stream_update;
5114 enum surface_update_type update_type = UPDATE_TYPE_FAST;
5115
5116
5117 for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
5118 new_dm_crtc_state = to_dm_crtc_state(new_crtc_state);
5119 old_dm_crtc_state = to_dm_crtc_state(old_crtc_state);
5120 num_plane = 0;
5121
5122 if (new_dm_crtc_state->stream) {
5123
5124 for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, j) {
5125 new_plane_crtc = new_plane_state->crtc;
5126 old_plane_crtc = old_plane_state->crtc;
5127 new_dm_plane_state = to_dm_plane_state(new_plane_state);
5128 old_dm_plane_state = to_dm_plane_state(old_plane_state);
5129
5130 if (plane->type == DRM_PLANE_TYPE_CURSOR)
5131 continue;
5132
5133 if (!state->allow_modeset)
5134 continue;
5135
5136 if (crtc == new_plane_crtc) {
> 5137 updates[num_plane].surface = &surface[num_plane];
5138
5139 if (new_crtc_state->mode_changed) {
5140 updates[num_plane].surface->src_rect =
5141 new_dm_plane_state->dc_state->src_rect;
5142 updates[num_plane].surface->dst_rect =
5143 new_dm_plane_state->dc_state->dst_rect;
5144 updates[num_plane].surface->rotation =
5145 new_dm_plane_state->dc_state->rotation;
5146 updates[num_plane].surface->in_transfer_func =
5147 new_dm_plane_state->dc_state->in_transfer_func;
5148 stream_update.dst = new_dm_crtc_state->stream->dst;
5149 stream_update.src = new_dm_crtc_state->stream->src;
5150 }
5151
5152 if (new_crtc_state->color_mgmt_changed) {
5153 updates[num_plane].gamma =
5154 new_dm_plane_state->dc_state->gamma_correction;
5155 updates[num_plane].in_transfer_func =
5156 new_dm_plane_state->dc_state->in_transfer_func;
5157 stream_update.gamut_remap =
5158 &new_dm_crtc_state->stream->gamut_remap_matrix;
5159 stream_update.out_transfer_func =
5160 new_dm_crtc_state->stream->out_transfer_func;
5161 }
5162
5163 num_plane++;
5164 }
5165 }
5166
5167 if (num_plane > 0) {
5168 status = dc_stream_get_status(new_dm_crtc_state->stream);
5169 update_type = dc_check_update_surfaces_for_stream(dc, updates, num_plane,
5170 &stream_update, status);
5171
5172 if (update_type > UPDATE_TYPE_MED) {
5173 update_type = UPDATE_TYPE_FULL;
5174 goto ret;
5175 }
5176 }
5177
5178 } else if (!new_dm_crtc_state->stream && old_dm_crtc_state->stream) {
5179 update_type = UPDATE_TYPE_FULL;
5180 goto ret;
5181 }
5182 }
5183
5184 ret:
5185 kfree(updates);
5186 kfree(surface);
5187
5188 return update_type;
5189 }
5190
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-09-14 6:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-14 6:36 [radeon-alex:amd-staging-drm-next-pco 272/339] drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:5137 dm_determine_update_type_for_commit() error: potential null dereference 'surface'. (kzalloc returns null) kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.